Add missing `configs` method from Project to the build.sbt DSL.

* Create `configs` method for the sbt DSL
* Add ProjectManipulation for this method to implement.
Add toString methods to classloaders, for debugging.

* Add toString methods to all classloader classes.
Fix issue where ScalaInstance broke the thread-context-classloader for all scala classes.

The issue is that when you manually set a ScalaInstance, i.e. not one from Ivy, the
classpath which is returned for any given configuration ONLY uses Ivy.   This means that
the legitimate Scala JAR files that need to be on the classpath are missing from the list.
For some reason, the way we instantiate tests uses an unfiltered classloader against the
ScalaInstance, *BUT* the thread-context-classloader DOES use a filtered instance by
classpath.   This add the hook into the TestFramework runner creation so that
the classpath accurately reflects the jars needed.

cc @rkuhn
Removing printlns and adding the test, DOH.
Merge pull request #1584 from sbt/wip/fix-test-classloader-issues

Fix issues with specifying scalaHome/scalaInstance and running tests