Reorganization of AST types

Also added ASCI tree diagram to aid in understanding type system.
Added documentation, code cleanups.

- Docstrings for AST types
- Rename Assignment -> Assign