Replace Opaleye.Internal.NEList with Data.List.NonEmpty from semigroups

As mentioned in https://github.com/tomjaguarpaw/haskell-opaleye/pull/2#issue-48391645, it seems we can use `Data.List.NonEmpty` from the `semigroups` package instead of rolling our own non-empty list implementation. These are the changes needed to do that.