Refactor grammar to support implicit multiplication.

Needs more tests.
More tests
Merge concatenation fixes from lrasinen/concat