Lrm fixes

Closes all the LRM issues except format strings.

- Adds `and` and `or` keywords for boolean logic
- Operating on  `null`
- Equating `null` across types
- Implicit casting from int to float
- Hoisting functions, classes, namespaces, parameters, and routes
- Default function arguments.
Should we imploy c-style overwriting?  as in a variable may be redefined once per scope?