Support macros.

Support a limited kind of macros. Still dirty and messy, but it works for the base case. Macros are macros themselves(yee).
They are expanded into special BachMacro instances which are saved into user_macro's attribute of a macro expander.
On each macro call in code, it's definition is compiled into a python code object using bach's bytecode compiler itself.(We should compile it just once on init)
The compiled lambda is called with the ast nodes and it returns the fresh sexp.
TODO: Recursive macros, refactor code, add some more macros to stl.
That commit adds a standard library function macro which acts like standard scheme define for function.