Rearrange compilers macros to be define before used.

The original explanation as to why it was done this way doesn't make any sense to me. And recent SBCL tries to catch compiler-macro being defined after their first use.