Adding protobuf serialization library

docs for protobufs can be found here:

https://developers.google.com/protocol-buffers/

Protocol buffers are often considered the most efficient serialization.  Java support is currently experimental, but I think that the library is relatively reliable.

Benefits of serialization:

- fast saving/loading of games
- compile time guarantees (the code is generated from Go.proto using the protobufs compiler)
- easy network communication
- language flexibility
- versioning of protocol spec