Implement native macros

That's right, native macros.

They get "evaluated" twice: at compile time (for use in the rest of the file), and at runtime (for use via requires).

Closes #53.