HList select lenses

These are lenses you pick based on value type.  A simple "lens based on element type", `hlistSelectLens`, is derived, as well as `recordLens`, which selects fields of the new extensible records in 2.0.0.  Simple examples of use are included in the added tests.

I have also derived entirely generalized Scalaz `LensFamily`s for these; though this is the wrong place for those, it is nice to know it is possible.

I have not included extra syntax for convenient inference of the hlist type.

Thanks to @milessabin for discussing this with me, which inspired me to figure out what I was doing wrong and finish it.