Implement:
- serialize fields sorted by field number
  (will break current oneof serialization check)
- simple extension option (Google::ProtocolBuffers compatibility)
- implement unknown fields (needs uPB support)
- prepare for the different sematics of proto3
  - enums
  - unknown fields
  - maps (maybe add a compatibility layer for protobuf 2.x)
  - any
  - JSON mapping/parsing
- remove from fast path
  - enum validation
  - oneof handling
  - required handling
  - default value handling
- lazy fields
- services
- custom options?
- encode_defaults option
- generic extension methods perform a linear scan on the extension list
- better parameter checking/error handling in protoc plugin
- check duplicate oneof fields in check methods?
- check required fields in check methods?
