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._
https://github.com/sbt/sbt-remote-control/pull/192/files#diff-7752bfb17709b81017f4ffef9176f148R118 is where this is used.

Just tried `def convert[F, T](value: F)(implicit mf: Manifest[F]): Option[(T, Manifest[T])]`, this seems to be quite unsafe - the implementation of convert has to then cast to `T`, but `T` could be anything the caller of `convert` thinks it is. The way it is now (returning `_`) the caller has to acknowledge that it has no idea what type it's getting back.
The problem with the way I have it now, though, is that there's no indication in the types that the value and the manifest match. So maybe existentials solve that.