NonNull refactoring

Re-use the common part of IsSequence
The NonNull instance flipped how its 2 main types are handled.
The NonNull instance is defined for NonEmpty, not [a]
[a] is an associated Nullable type