Move Format to Message (not subtypes) and clean up hackarounds

We want Message to always be serialized with a discriminator, and
it will always be a sealed trait, so it makes sense to do the
serialization at the Message level and make all the subtype
serializers into private implementation details.
This also removes the hacks we had (sendJsonFilter, etc.) to
add the discriminator later in the process.
Merge remote-tracking branch 'origin/master' into wip/havocp-move-format-to-message

Conflicts:
	commons/protocol/src/main/scala/sbt/protocol/WireProtocol.scala
Fix import of messageReads / messageWrites in ProtocolTest
Merge pull request #226 from sbt/wip/havocp-move-format-to-message

Move Format to Message (not subtypes) and clean up hackarounds
Merge remote-tracking branch 'origin/master' into wip/pickling-merge-master
Merge pull request #230 from sbt/wip/pickling-merge-master

Merge master to pickling