Use ASSERT instead of ERROR.

When verifying the arguments to DEFINE-FLAG, use ASSERT instead of
ERROR.  This should allow a user to retry defining a flag, if some
parameters are of the wrong type.
Tweak DEFINE-FLAG argument validity checking.