Code restructuring.

Decouple grammar from semantics.
Include unit tests.
Enable concatenation multiplication.
Enable f^-1.

A modified version of antlr4 is used that treats postfix operators differently to make concatenative multiplication work. It is expected to be unnecessary once antlr4 supports concatenative binary operator.