Make full set of ForkOptions configurable for both run and test. Fixes #665.

Environment variables may be passed by configuring the envVars task.
Revert "outputStrategy does not apply to test tasks"

This reverts commit 6c6d86d5cea4c879bedff153879d7cb8ba677f87.

It does now.
Remove unused class loader implementations
Class loader that restricts loading to a classpath. Ref #661.

It is now used for consoleProject, run, and test.  This loader verifies
that all classes loaded through it came from a particular classpath or
from the "root" loader.  Root loader here is the launcher loader so that
those classes with native bindings come from that shared loader.
Replace Scala jars in UpdateReport with ScalaProvider jars in more situations.  Fixes #661.

Specifically, when the Scala version for sbt is the same as that for the project being built,
the jars in UpdateReport should be the same as those in ScalaProvider.  This is because the
loader will come from the ScalaProvider, which uses jars in the boot directory instead of the
cache.  The first part of the fix for #661 checks that loaded classes come from the classpath
and so they need to line up.
Revert "Fix sbt/sbt#676: swapped declarations and members in `ClassToAPI`."

This reverts commit beb87f278956c99a973650ea73859f5affcf0eb3.  It causes java/options to fail.

CC @gkossakowski
fix project/source-plugins test
force test definition sequences to fix tests/order