partest test interface for sbt

To use `test` to run partest through this testing interface,
add something like this to your `build.sbt`:

```
// for testing with partest
libraryDependencies += "org.scala-lang" %% "scala-partest-interface" % "0.1" % "test"

// the actual partest the interface calls into -- must be binary version close enough to ours
// so that it can link to the compiler/lib we're using (testing)
libraryDependencies += "org.scala-lang" %% "scala-partest" % "1.0-RC1" % "test"

fork in Test := true

javaOptions in Test += "-Xmx1G"

testFrameworks += new TestFramework("scala.tools.partest.Framework")

definedTests in Test += (
  new sbt.TestDefinition(
    "partest",
    // marker fingerprint since there are no test classes
    // to be discovered by sbt:
    new sbt.testing.AnnotatedFingerprint {
      def isModule = true
      def annotationName = "partest"
    }, true, Array())
  )
```

SBT's `test` task will now see a test with the fingerprint that matches
the fingerprint in the array of fingerprints (tests, really) returned by
`scala.tools.partest.Framework::fingerprints`.

SBT unfortunately hardcodes fingerprint matching, so I don't see
how else to shoehorn partest into this approach.

The interface reflectively instantiate `scala.tools.partest.nest.SBTRunner`,
constructing a URL classloader from the current classpath,
which is the test classpath when tests are run in a forked VM.

Neat trick: we cast to the structural type `SBTRunner`, and let the compiler
synthesize the reflective call for invoking `execute` on the runner