Added ReifiedMonadicFold and a few useful instances.

I would have added a Monoid instance as well, but I was unsure about how to properly implement it. Maybe using "beside" from "Control.Lens.Traversal"?