Add benchmarking tests for binary encoding (moved from cantranslator).
Benchmark encoding translated messages as binary, too.

Results for all of my trace files:

> ./compare_sizes.py ~/ownCloud/OpenXC\ Traces/peplin/**/*.json       1
For the 89 trace files given...
Total transferred raw JSON size is 13.3MB
Total transferred raw binary size is 2.1MB
Total transferred translated JSON size is 791.0MB
Total transferred translated binary size is 318.6MB
Total transferred JSON size is 804.3MB
Total transferred binary size is 320.6MB
Binary encoding is 84.328494% smaller than JSON for raw messages
Binary encoding is 59.727489% smaller than JSON for translated messages
Binary encoding is 60.133196% smaller than JSON overall
Benchmark how much overhead each encoding adds vs raw CAN.
Use a container type to be able to stream protobufs.
Move proto definition to top level.
Add an options file to enable static memory with nanopb.
Add a bus field to RawMessage and make data an 64-bit int.
Add generated protobuf implementations.
Merge all sub-types into a single TranslatedMessage type.
Update benchmark tool for latest protobuf format.
Remove timestamp from trace JSON before benchmarking - oops!

The size savings is now about 35%, not 55%.
Switch raw data field to uint64 to fit all values and update benchmark.
Fix package name of generated protobuf objects.
Switch back to many subtypes for binary messages.

Some protobuf libraries don't support checking if a field exists (they
always return a default value), so although this style has more code it
is easier to support.
Restore accidentally deleted data field from raw message.
Revert "Restore accidentally deleted data field from raw message."

This reverts commit e4a78ec9935af3b19d314e88b0ed935789162ca8.
Revert "Switch back to many subtypes for binary messages."

This reverts commit 3e954ea9c44bdd00b39d3f0d2cc43662e633c891.
Minimize the number of separate protobuf types.