OnePlus, a NonEmptyList generalization

This provides `OnePlus[F[_], A]`, where `OnePlus[List, A]` is isomorphic to `NonEmptyList[A]`.  It provides several Id-and-F products, at least those that are consistent with `NonEmptyList`.

I noticed some interesting things, such as that the product of a `Traverse` and a `Traverse1` is really a `Traverse1`.  These are implemented only for `OnePlus`, but might be interesting for general products.

Tests are included.