Update protobuf messages and seperate out services.

It makes sense for these to be a seperate protobuf file. My
idea here is that each protobuf will only handle the context of the
service. It should be agnostic to whatever delivery mechanism, or
encoding, was utilized to deliver it to the Go service.