Added optional macros with specs etc.

See the README for info. Generator is also updated and macro_spec passes. I like the short and concise code made possible with these macros :)