Add registeredProtocolConversions setting to convert values prior to ser...

...ialization

This allows us to go from sbt's internal type to a type to be sent over the wire.

sbt's internal type is generally of interest only to the server side, not the
client side. Client doesn't have sbt itself on the classpath, only the
sbt client jar and sbt.protocol._
If the safety has to be hidden behind `register`, that's cool.   Just wanted to point out the type `Option[(_, Manifest[_])]` does NOT convey what you want it to, and you're forcing casts anyway, so the API is better to hide these far, far away.  I'd like to see something on this side, but with my initial review, not sure I have any more salient points....