Make handling of tuples more consistent in quasi-quotes

On one hand we know that `q"($expr)"` is the same as `q"$expr"`. On the other if we wrap it into a list and splice as `q"(..$expr)"` we get a `Tuple1` which is inconsistent.

This pull request fixes this inconsistency by making `q"(..$expr)"` being equivalent `q"(${expr.head})"` for single-element list.

We also add support for matching of expressions as single-element tuples (similarly to blocks) and remove liftables and unliftables for `Tuple1` (which aren't clearly defined any longer due to `q"(foo)" == q"foo"` invariant).

review @xeno-by