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 in branch `master` also does so, so maybe it is not quite the fault of the macro thing:

    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)

I am having trouble with python whining about not finding modules, kindah annoying :/ (looking at the docs..) ([the related cpp-ethereum issue](https://github.com/ethereum/cpp-ethereum/issues/175))