Clean up

Simplify expression optimization in the AST.
Bring back whole program optimizations

Specifically zero inlining and remove from end.
Fix test compilation

Still broken due to how the new expression optimizer works.
Remove unary operators

Nice generalisation, but was never useful for anything thus it was over
engineering.
Rename Get to Var
Delete old inlining code