fix QuasiQuote#preclude? for many subnodes
implement QuasiQuote code with splats
define method branch matchers as a separate method

this allows it to keep its definition context, instead of the wrapper method's
context, which is important for things like KindOf patterns, where the
constant name lookup should be from the definition