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
Possibly, but it's more of an enum thing like:

   enum Mode = Expression | Pattern

IMO whatever you name the boolean it will be confusing (as experience with reifiers have shown) and you might want to have two but then it's too complicated of a change for a single switch.