Rename the parser.
Create an `isOp` function for strings.
Rename functions and modules
More specific imports
Add a way to flatten lets that have become nested
Create MetadataModule for more refined information about modules

Used in most places to break a module into more orthogonal components.
Some of this data needs to be serialized into the interface files.
Update more modules to use the MetadataModule data structure
Provide the type *and definition* for data constructurs during type checking
Try to support polymorphic pattern matching

Expands each pattern into basic PVars to attempt to recover polymorphis
through the same mechanism. Need to test further.