Added flags for containers, contravariant and distributive

Hi,

Following the same logic adopted in the [semigroups package](https://hackage.haskell.org/package/semigroups), I've added flags for `containers`, `contravariant` and `distributive`.

Does it seem good with you?
Cheers