Instances for OneAnd

#407, updated for discussions in that thread.  (Thanks to @xuwei-k for original implementation.)

I'm not too sure about providing the `Semigroup` by default, but you might like that.