Initial support for array types.

- Add the array token.
- Define the array type in the AST.
Implement parsing for array expressions.

- Fix mis-numbering of ast nodes.
Finish implementing array types.

- Add overloads to conver/reduce for working with terms.
- Define is_value for expressions.