SI-8703 add support for blocks with just a single expression to quasiquotes

Previously it was impossible to match a block that was constructed as

    Block(Nil, term)

Due to the fact that quasiquotes always flatten those into just `term`. This is
a correct behavior for construction (for sake of consistency with parser) but
doing it in deconstruction mode make it impossible to match such blocks which
could have been constructed manually somewhere.

To fix this we just disable block flattening in deconstruction mode.
Interestingly enough this doesn't break existing code due to the fact that
quasiquote's block matcher also matches expressions as single-element blocks.

This allows to match single-element blocks with patterns like `q"{ $foo }"`.

review @retronym @xeno-by
The same pattern match is already present twice in the implementation of quasiquotes. That'll be the third time when `global.abort("<some error message>")` is added to the code base. In my opinion, this is well worth refactoring. I'll defer to @retronym wrt whether this is okay or not.