Initial stab at model-view API for sbt build.  A discussion point, this commit may disappear.

Address Havoc's comments.

* Listeners become functions
* Remove direct task execution + result methods in favor of 'request to run'
* Listening to values is now the prefered way to listen to values.
* BuildStructure is now designed to be serialized to local client wholesale, behind
  a listener interface.  This is a minimalistic set of information we can use to begin
  inspecting the build.
* Try to clarify execution behavior of asynch callbacks with execution contexts.
* Consolidate the mechanism of executing tasks/commands into *ONE* call.  This is
  to work around the delegation issue.
* Lots of TODOs about delegation of tasks (e.g. compile:compile -> compile)
* Still no way to understand/handle aggregates.
Initial sbt-as-a-server prototype with full project loading and useless message handling.
First cut at pulling System.out/System.err in so we get log messages.
Very bad and gunky implementation of prototype client which can log in and listen to log events/make useless requests.
Adding disconnection handling to the server.  Also creating an attempt to pushing the execution engine against an immutable State for the server, as it is for the build itself.
Prototype really lame client for talking to sbt protocol.
Fix issue with multiple clients connecting at once.  Autogenerate launcher properties.
Ensure server shutsdown after a timeout with no clients.
Fix issue with multiple client registrations for events.
Starting server engine, updates for 0.13 PR merge.
Use sbt's command processing loop instead of our own.  We can now load + execut sbt commands
in our server process.  We even send events.   The only issue, currently, is that executing
commands does not ack when they are complete.
Removing useless volatiles.
Removing useless debugging statement now.
Remove System.out.printlns in favor of log messages.
Fixes for nicer client usage.

* Clients always sent a Started message when the server can handle requests (possibly immediately)
* Attempt to grab listeners during startup, for folks who want messages immediately.
Handle failure on example client.
Now we can execute more than one command!

* Update to use sbt 0.13.2-M1 release
* Hack the sbt version into AppConfiguration so sbt thinks it's sbt.
* Add post-processing commands that fire 'done' notifications.
* Attempt to add an error handler for failed commands.
Fix issue with error handling of commands.
Adding test events back to execution.
Add client side wiring for watching build structure changes.