Cleanup use of polymorphic variants in Harbor

Cf. #151. I need a review here.

Also note that the camlp4 stuff is really messy and annoying. We should not track generated files, or at least mark them binary. It's also annoying because the ocaml compiler reports errors in generated files and my editor jumps to them; I can even write to them since they are not marked read-only.