(ocaml) optionally preserve unknown Protobuf fields

Can be enabled by specifying piqic-ocaml --gen-preserve-unknown-fields flag.

When enabled, unknown (unrecognized) Protobuf fields are captured during
de-serialization in a special 'piqi_unknown_pb' field and automatically written
back when the record is serialized to Protobuf.

Such treatment of unknown fields is consistent with Protocol Buffers behavior.
For instance, its manual states that "... the unknown fields are not discarded,
and if the message is later serialized, the unknown fields are serialized along
with it – so if the message is passed on to new code, the new fields are still
available.

Keeping it disabled by default in case of OCaml though, because OCaml records
lack field defaults and therefore can't be easily and efficienly constructed
without specifying all record fields including the artificial 'piqi_unknown_pb'
we've just introduced. There are known workarounds (e.g. using using generated
*_default() functions) but they make code look uglier.