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
If it were not included, then the user would have to figure out that they're missing the protobuf jar, so at some point we should probably create a build (either maven or gradle) that will handle fetching and integrating dependencies automatically.