Simplify macros using quasiquotes
Understand and discuss consequences of SI-6447
Allow clients to supply an AST

To this end, we must move macro methods into a trait. They're dispatched
statically, but they can produce code which uses dynamic dispatch on the
receiver.
build.sbt: add commented out dependency

For manual testing.
Switch to 2.11.0-RC1

Needed for next commit.
Simplify component wiring

LambdaCalculus can simply be a mixin. This runs into SI-6447 on 2.10.3,
that's why I needed the previous commit.
Move lambda-calculus implementation into client

Instead of having it in the project defining the macro, it should only
be in the project using macros. This reduces tremendously the overhead
of setting up a separate project for macros - in fact, you simply need
to import the library from the macros project, mix the macro component
with the calculus component, and use its macro members.

Next, I will refine the interface that a calculus component must supply.
Fix deprecation warnings

These are due to changes in the macro API for 2.11.
Separate interface for calculus component

This interface is still to refine.