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
  - enum unrecognized values are always passed through
  - unknown fields are always discarded
  - any
- remove from fast path
  - enum validation
  - oneof handling
  - required handling
  - default value handling
- lazy fields
- custom options?
- 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?
- proto3 well-known types
  - any
  - struct
  - fieldmask
