Fix defcommand macro to correctly use the *commands* variable

Before the expansion was incorrectly depending on *commands* being
defined during the read part lisp loop.