Re #50; generate lenses using template Haskell

This is an extremely rough attempt. Short list of problems:

-   makeLenses is gross. In fact, Strive.Internal.TH is some of the
    grossest Haskell I've written. But it's at the limit of my
    knowledge. I should learn how to make it better (with quasi
    quotation, probably).

-   Listing all the things to make lenses for feels silly. There's got
    to be a way to use `map` (or something) to do that. Even so, it
    would be a lot better if I could pass an entire *module* (like
    `Strive.Types`) in and have it find all the types defined within.
Put derived lenses in their own module
Remove extra newline