Generate some useful case class conversions with macros

This is in the vein of https://github.com/twitter/scalding/pull/1037. It seeks to reduce the boilerplate when working with case classes.

Note: I copied some of the code from that PR, because the idea that emerged there is that some of the really common code could go here, since bijection is a project with very few dependencies, and upon which many other projects depend.

I need to add tests.

Also, in the future this can be made a lot nicer with the fundep work in macro paradise... right now you can't sort of be in between with the type checker, so the caseClassToTuple isn't as nice as it could be
shouldn't we recursily convert case classes into `Map[String, Any]`? I mean, if you are using this, presumably using the case class is a problem, so we would want the whole structure flattened into a Map, right?