all: update to wrap google.golang.org/protobuf

All functionality is now implemented in terms of the next-generation
protobuf API in 'google.golang.org/protobuf'.

For information on the new protobuf API, see:

  https://blog.golang.org/protobuf-apiv2

This commit merges the 'api-v2' branch with the 'master' branch.