allow macros to be declared out of order

This also fixes a bug since the inception of arc: macros in lexical scopes
were not available until the next top-level form.