Macro generated case class Tuple Setter and Converter

This is a first stab at using macros to begin generating useful code for our users.

Caveats:
* this only works on 2.10. I play around with it by doing: ```./sbt ++2.10.4 "scalding-macro/console"```
* this depends on macro paradise. I do this for quasiquotes, which GREATLY simplify the implementation... it isn't strictly necessary, but would greatly complicate things. quasiquotes are part of scala 2.11 so depending on macro paradise only for them seems ok to me.
* I need to add tests, though I've tested it along the way of course.

What are other things we might want to use macros for?
What if you also had `implicit val stringFoo: Foo[String] = new Foo[String] { }` in the Foo companion object? Would everything be fine?

Because that is what scalding wants: we want that if it is not a case class, that the default lowest priority implicit is used (which just assumes the values stored in cascading tuples are the instances, and does `tup.getObject(0).asInstanceOf[T]`).

I don't see how the compiler will choose those if @jcoveney 's Implicits. materializeCaseClassTupleConverter are in scope. I can see how his will fail to compile, but not that it would fall through the low priority implicit.

I guess Jco's code could fall back to that case internal to the macro (if we don't have a case class or scala tuple).