add hasAttachment utility method to the internal api
add some post-typecheck tests for quasiquotes

Typecheck trees with toolbox and check that they are still matched
by corresponding quasiquote. Fix tuples and function types matchers
to account for different shape of trees after typing.
simplify imports in quasiquotes scalacheck tests
add support for importable attachments

Previously attachments weren't imported by importTree. Now a new marker
trait has been added that lets attachments to import themselves to the
new universe together with all their innards. Additionally a simpler
subtrait is defined to mark attachments that can be imported as-is.
make fresh names compare similar in quasiquotes

Otherwise it's annoying that trees that look the same are not equal
due to some fresh name hidden underneath. Due to this one test needs
to be changed to use plain equalsStructure.
move for loop desugaring into tree gen

1. Move mkFor and it's dependencies to tree gen to make it accessible
   from tree builder and usable for quasiquotes.

2. Change intermediate representation of for loop enumerators from
   plain classes with positions into trees that encode the same data.
   This trees will also be used by quasiquotes as intermediate values
   obtained after for loop deconstruction.
implement inverse transformation to mkFor

This effectively reconstructs a sequence of enumerators and body
from the tree produced by mkFor. This lets to define bi-directional
SyntacticFor and SyntacticForYield constructors/extractors to work
with for loops.

Correctness of the transformation is tested by a scalacheck test
that generates a sequence of random enumerators, sugars them into
maps/flatMaps/foreach/withFilter calls and reconstructs them back.
add support for for loops and for enumerators to quasiquotes

1. q"for (..$enums) $body", q"for (..$enums) yield $body"

2. fq"..." quote to construct/deconstruct enumerators