Support for record and union types + parser test

* Record types:
  * Supports the trailing semicolon
  * No type extension yet
* Union types:
  * No type extension yet
* I am voluntarily breaking *TestUnfinishedConstructs01* because I'm not
sure of how the error should be represented.