Macros

Replaces `rewrite` with a bunch of macros. Decided make them all macros, it's simpler.

Not tested all the way through yet. `runTests.py`, in `compile_to_assembly`, raises

    Exception: ('no matching function found', ['while', ['<', 'i', '997'], ['set', 'i', ['+', 'i', '1']]])

However `master` also does so:

    Exception: ('no matching function found', ['init', ['seq'], ['seq', ['set', 'x', 'msg.datasize'], ['set', 'y', ['calldataload', '0']], ['set', 'z', 'msg.sender'], ['msg', 'z', ['^', '10', '18'], '0', '0', 'y', 'x']]])

Maybe `while` and some others warrant macros that dont recurse, to get `(while cond ...body...) instead of `(while cond expression)`. And `case` etcetera can be made too..(first things first)