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
I think instead of explicitly calling caseClassToMap, we should be safe calling ```implicitly[Bijection[T, Map[String,Any]]]``` which has the benefit of allowing the user to override our generated values (currently not possible). @travisbrown, if I were to make that change, it should be fine, right? I guess that's what testing is for...