split out the tests
ignore $type field in json if it's not compatible with the hint
Merge pull request #230 from sbt/wip/pickling-merge-master

Merge master to pickling
add test case for ignoring extra field
infer None when an Option field is missing
improving standard type handling

- custom array handling to unpickle non-primitives
- derive List pickler from ::
-
starting round trip tests of protocol types

- added File handling
fix list pickler
custom Vector pickler/unpickler
CanToString represents types that can be serialized as string
start round tripping messages
change Set -> Vector in CommandCompletionsResponse

Inside the protocol, we should avoid:
1. abstract collection types (the concrete type may or may not be
supported by pickling)
2. Sets in general since it adds non-determinism.
Initial compilation with play-json instead of pickling

 - this is full of unimplemented ??? and doesn't work,
   it does mostly compile
 - integration tests project appears to hang forever when
   compiling
 - introduces sbt.serialization package
 - should cleanup EventTracker.scala removing EventWithWrites
 - see other TODO and FIXME