SI-8609 Fix flattening of definitions and imports in quasiquotes 

Quasiquotes allow to unquote trees with ..$ with block flattening
semantics to simplify composition:
```
  val onetwo = q"1; 2"
  val onetwothree = q"..$onetwo; 3" // same as q"1; 2; 3"
```
If there is no block it will be equivalent to $ unquoting:
```
  val one = q"1"
  val onetwo = q"..$one; 2" // same as q"1; 2"
```
But the inconsistency here is that currently only terms support
this single-element semantics. This commit extends this functionality
to also support definitions and imports. So that following code works:
```
  val q1 = q"val x = 1"
  val q2 = q"..$q1; val y = 2" // same as q"val x = 1; val y = 2"
```
review @retronym @xeno-by