Unit and dimensions support

This adds incomplete support for units and dimensions.

It is possible to attach unit notation to all scalar literals as such:
```
a = 7 [Meter]
b = 9 [Meter/Second^2]
```
However, any array access, array creation or function calls are non-dimensional, limiting the usefulness of this feature. Improvements to this would require some deeper work with functions and types.