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?
Magic.

Specifically, if you've got the following:

``` scala
import language.experimental.macros, reflect.macros.Context

trait Foo[A]

def materializeImpl[T](c: Context)(implicit T: c.WeakTypeTag[T]): c.Expr[Foo[T]] = {
  import c.universe._
  if (T.tpe =:= typeOf[String])
    c.Expr[Foo[T]](q"new Foo[String] {}")
  else c.abort(c.enclosingPosition, "Not a string")
}

implicit def materialize[T]: Foo[T] = macro materializeImpl[T]
```

Then `implicitly[Foo[String]]` will compile but `implicitly[Foo[Int]]` won't.

Eugene implementing this at the last minute for Miles's NE Scala 2013 presentation (and then sneaking it into 2.10.2) is one of the great Scala stories.