Reformatted Build.scala
Refactored some of build to remove some duplication
Migrate dependency definitions into separate file from core build.
Fixed ebean dependencies
Migrated non-project-setup code into separate file (tasks) which will be
refactored more later.

Added hooks to externally control the scala version and sbt version for
the build.
Migrate Source code generator to method instead of function.
Migrating to a nicer way of creating the local ivy repository.

* Uses Ivy's 'install' command
* Resolve from local/rmeote repositories of artiacts (requires play to be published)
* Clean can now clean the resolved distribution repository without fudging up the cache.
* Unicorns now accessible to play distributions.
Scala + SBT dependencies now inside Ivy, so repository resolution
can catch them, and we can change which versions are used.
Removing old dist/repo tasks for the new ones.

* Repository generation now done using the Ivy 'install', so no longer needed.
* The dist tasks aren't actually used.  We'll encode the current bash script
  into sbt.
Start of new distribution workflow in SBT.

* Copy things from root directory into budding distribution directory.
* Stubbed out docuemntation generation now for testing.

TODO - Copy things frome framework directory (only sources)
TODO - generate zip file using command line zip and max compression.
Fixed up distribution task to include play's source code as well.
We used a somewhat hacky way to traverse files that allows us to
avoid going down into the "bad" directories that are currently
being used to build.
Some cleanup of Play SBT plugins

* Extracted stuff to do with running play into PlayRun.scala
* Changed play run into a task, instead of a command, to play nicer with
  the SBT ecosystem
* Removed deprecated PlayProject
* Set JVM code cache higher
Got create-dist working properly