Change macros to be called with separate arguments

This provides free argument-length checking for macros.
Add a defmacro builtin
eval macros at compile time
Add a native macros test
style fixes
Merge remote-tracking branch 'paultag/feature/native-macros' into feature/native-macros

Conflicts:
	hy/compiler.py
	tests/__init__.py
Fix up the native-macros to use compiler imports
Make that test macro more lispy
Test requires from native code
Merge branch 'master' into pr/175