title: Scala Reflection - Loading or finding classes based on trait
body: <p>Does the scala reflection API (2.10) provide any easier means of searching the loaded classes and filtering the list to specific classes which implement a defined trait? 
  ie;</p>
  
  <pre class="lang-scala prettyprint-override"><code>trait Widget {
    def turn(): Int
  }
  
  class Cog extends Widget {
    def turn() = {
      5
    }
  }
  
  class Sprocket extends Widget {
    def turn() = {
     10
    }
  }
  </code></pre>
  
  <p>I want to search the class library for anything that extends Widget and instantiate those classes. So I would end up with an instance of <code>Cog</code> and <code>Sprocket</code>.</p>
  
  <p>I've done similar in Java iterating through the class directories, forming class names and using Class.forName to load a Class object to then check. I'm just wondering if the scala reflection API gives any easier way to search. All examples I've seen thus far have always started from a known class being instantiated, and not from searching over available classes.</p>