Fix #lp573747

Handle misplaced DECLAREs in the compiler earlier.  This takes care
of compiled code, and of evaluated code under :COMPILE evaluator-mode;
add a test too for :INTERPRET evaluator-mode (though the current
behaviour is correct).

Based on the patch by Roman Marynchak.