Added --gen-constructors and --gen-module-per-record to piqic-ocaml

--gen-constructor will create a constructor for each record type:
create_<name> <field 1> <field 2> ... <field n>

--gen-module-per-record will create a separate module for each record
type. The record type itself will be aliased to a type t in this module,
the gen_<name> and parse_<name> are aliased to pickle and unpickle, and
the constructor (if it exists) will be aliased to create. In addition,
getter and setter functions will be defined as well. Setter functions do
not modify the existing record, but return a new one with the field set
to the new value.
Merge branch 'generate_constructors_and_modules' into for_third_party