Initial cut at implementation of sbt discovery API.

* Initial tests/serializers/hooks for reading Key/Task/Input task information from a build.
* Initial types which will end up in the formal interface.

Quick review by @harrah / @havocp would be handy.
Temporary commit to save state of where discovery API is, so I can switch computers.
Fix bug in testing code, and get keylist request/response to start flowing back and forth.
Fixed setting key discovery to start working.
Adding tests for Input/Task discovery.  Appears to be working.
Exclude annoyances that don't let us work offline (in planes).
Start of protocol for sending back values (the wrapper).
Merge remote-tracking branch 'origin/master' into wip/sbt-rc-formal-api
Refactoring Parametize to better name.
Fix failing tests.
Merge remote-tracking branch 'origin/wip/sbt-rc-formal-api' into wip/sbt-rc-formal-api
Fix merge conflicts.
Fledgling support for serializing generic values out of sbt.  Along with annoying workarounds.

* ScopedKey construct moved between 0.12 -> 0.13
* Manifest factories moved between scala 2.9 -> 2.10
* Added ability to go to/from manifest via TypeInfo protocol message.
* Added a big ole static method to figure out how to construct a "RawStructure" typeclass from manifests.
* Wired something which can grab setting values, at least for name.
* Ignored sanity when trying to determine scope of a key in any kind of nice way.   Let the
  users burn for now.  Well, we should fix ASAP after a chat with @harrah.
Missed shims for manifests in last commit.
Merge remote-tracking branch 'origin/master' into wip/sbt-rc-formal-api

Conflicts:
	commons/probe/src/main/scala/com/typesafe/sbtrc/SbtUtil.scala
Fledgling 'run task' support.  Tests are failing epicly, need to investigate.
Adding the ability to serialize task results back.

* No proper error handling yet
* Added Atributed[_] as a class we can serialize
* Added sbt's "collection" library as a requirement for sbt-rc-remote-controller artifact (for Attributed[_] serialization).
* Added a test for task serialization.

Review by @skyluc
Merge remote-tracking branch 'origin/master' into wip/sbt-rc-formal-api
Massive message structure refactoring.

* Remove the Params from UI in sbt.  All sbt plugins
  now just use Map[String,Any].
* All Request/Response/Event objects now support a
  RawStructure[T] class that can fragment them into
  a Map[String,Any]
* Moved `Envelope` into `WireProtocol.scala`.  Placed all
  serialization/deserialization logic of messages into him.
* Removed GenericREquest/GenericResponse.  All requests/responses
  have known types, but can have arbitrary attribtues if desired.
* Created GenericEvent so you can still send events via the
  ui.Context API (although this needs cleaned up).
* Moved existing shims to use pattern matching on direct types
  rather than magic strings.
* Got most things compiling
* Added serialziation tests for every message I could remember

Note:

* There are still message handling warnings here. Some messages are never
  serialized, but we should make sure they could be, probably.
* Integration tests do not pass.  This is so I can merge in @havocp's
  latest changes
* Refactoring is not complete.  There's still a lot of chaos in these APIs,
  in particular, confusion around how to serialize to JSON, and what types
  we should be passing around.  It's my intention that this mark the start
  of a FORMAL API which allows for generic events/messages to be sent.  We
  lock down on some structured meaning, albeit with some messages able to
  pass arbitrary information (see TaskResult and GenericMessage).

This probably needs to be reviewed soon by @skyluc or @havocp, but
for now, you may want to wait until the final result hits.
Merge remote-tracking branch 'origin/master' into wip/sbt-rc-formal-api