New command line option -allow-name-overlap

Type annotations added to the generated code to support this
First round, just records in JSON, looks like it's working
Will make changes to the other generators and support variants next
Don't need to pass name_overlap that far up

Initially I was only writing the annotations when the
-allow-name-overlap flag is on, but that adds more complexity and it
won't hurt to always annotate. So I don't need to pass that param
Annotations for biniou

This appears to work too. Not sure if I'm missing some features though,
only done very minimal testing so far, gonna make some test cases
Oh right, I don't have to handle polymorphic variants

Maybe this is all that needs to be done?
Support name overlap with classic variants
Fix type annotations in biniou implementation

Support name overlap of classic variants there too
Basic test cases for -allow-name-overlap
Make command line flag conform with naming scheme
Compile my tests when "make test" is run
Include type definitions for generated types

For my strategy of always including type annotations to work,
we need type definitions for generated types like _1 and _2,
or the annotations will refer to an undefined type
This oughta fix it... now just need to fix the type arg printing
Use full type names
New strategy: use original types in annotations

Code to generate type definitions for generated monomorphic types (_1,
_2, etc.) removed, since it didn't work properly. Instead, I'm keeping
track of the original types when the monomorphic ones are created and
their names are standardized, so that when Atdgen sees _1, it knows to
annotate with the type that _1 came from. This required a change to the
Atd repository as well. But it works! Hooray!
Type annotations in validators
Remove type annotations incorrectly applied to the children of a
top-level type expression.
Indentation rules for ocp-indent
More complete .gitignore file.
Factored out some common code used to record/variant type annotations
Fix incorrect type annotation when eta-expansion happens in validators.
The same fix still needs to be applied to ag_o[bj]_emit.ml.
Produce proper type annotations in case of eta-expansion
Checking off to-do item.