8547a75a

By: Greg Pfeil <greg@technomadic.org>

Add `CommutativeT` and other transformer instances

This is a breaking change.

- add `CommutativeT`
- add duoidal transformer instances for `IdentityT`, `MaybeT` and `ReaderT`.
- add `filterM` / `filterM'` operations to `Control.Duoidal`
- add (`p`|`s`)`fold`(`Map`) to `Data.Duoid`
- add dependency on barbies for duoidal-transformers
- add dependency on newtype package (and add `Newtype` instances)
- extract commutative monoid / monad to their own modules
- a lot of refactoring to use newtype ops & deriving strategies
- get rid of `Control.Duoidal.Trans.Orphans` (the instances are now in
  `Control.Duoidal.Trans.Class`)