Reformat protocol/Values.scala
make "object Classes" private

It's an implementation detail.
add dynamic serialization for Option; add tests for dynamic serializers
Merge BuildValue JSON directly into TaskResult JSON

This is a lot tidier when using JavaScript because
we don't have to write "event.value.value.value"
now we can just write "event.value.value" - WIN
Merge pull request #170 from sbt/wip/havocp-moar-serializer

Add serializer for Option and make event.value.value.value only .value.value