Fix #429
Compilation of closures over macros, symbol-macros, variables and functions now works with both bytecodes and native compiler. Closures over blocks only work in the bytecmp (would be too much work to implement in the native compiler for very little gain in my opinion). Closures over tags don't work in both cases (We would have to change the structure of lexical environment tag records for that). However when compilation fails, we now get an error instead of silently corrupting the function.