Bundle the launcher in the client jar.

* Allows the IDE to use the 'simple' mechanism to start sbt
* First step at a truly re-usable client.jar for any other project.

Still need a way to test this.
Fix up server locator so that sbt-launch.jar is pulled from nested location.

* We now look for a nested sbt-launch.jar first.
* We store the sbt-launch.jar using its SHA and re-use an existing
  launch jar if it exists.
* We placed some general purpose SHA code we shoudl probably
  have in sbt-io lib or somewehre more general.
Create uber-bundle of client app for IDE.

* Creates and publishes to maven an "uber" bundle of the client
  - Includes all non-scala dependencies, including
    + typeasfe config
    + jackson
    + play-json
    + random sbt libs
    + sbt-remote-control libs (protocol + client)
* Updates publishing so we publish the client-all to maven for maven clients.
Merge pull request #123 from sbt/wip/bundle-launcher-in-client

Bundle the sbt-launch.jar into the client.jar so we non-sbt-launched apps can use it easily.