Fix error when 'let' context contains a non-symbol non-list

Currently, attempting to use the 'let' macro with a lexical context containing an element which is neither a list nor a symbol generates an internal compiler error. For example,

    => (let [1])

Generates

    hy.errors.HyCompileError: Internal Compiler Bug 😱
    ⤷ TypeError: Can't assign / delete a <class '_ast.Num'> object

This change calls 'macro-error' if the user attempts to use such a context.