Add new proto definition

This adds the new protobuf definition. Both protocols are generated for all languages.

Once all clients have been upgraded to the new protocol, the old format should only be generated for go (in its own package) so that the server can continue to accept old messages.