Add a tweaked copy of Lift's HList implementation.

Lift’s HList isn’t covariant in its item types, this one is. Useful
when we start getting frisky and trying to leave shapeless
behind.
Drop shapeless like it's hott.

Instead, we now use Lift’s HLists (well, our modified copy for
now until Lift gets the improved version) and its
CombinableBox abstraction to handle failures. This means
failure handlers are now List[Failure]=>T instead of taking the
full HList of Boxes.

We lose all of the maps and such, and instead build up the
value lookup function incrementally as withField gets invoked
along the way. We also stop reversing the whole form at the end,
leaning instead on withFields to reverse the order in
which fields are added for us.

We also build up the CSS selector transform along the way,
and no longer need parens on the end of the binder() call
for forms (since we no longer need any implicit parameters).

Overall, a lot of the implicit magic is gone in favor of explicit
incremental assembly of our final result. However, we still
have a couple of macros along the way to make things a bit
more palatable.

Bumping to 0.3.0-SNAPSHOT ‘cause this just got cray.
Fix >22-attribute HList on* function generation.

We were missing the head type for those; that’s no longer a
problem.
Fix reference to binder in readme.