cmp: be more strict with symbol-macrolet
The ansi standard specifies that declaring symbols bound with symbol-macrolet to be special or binding symbols that are defined as global variables must signal a program-error. Previously, we simply ignored this issues. Also fix an issue with cmp-env-search-variables which would wrongly return variables when searching for symbol macros. This allows us to remove another check in symbol-macro-declaration-p.