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
fix compiler warnings
hide the NotEmpty constructor and get rid of .:

.: renamed to nonNull
redo NonNull

* split off SafeSequence so we can have IsSequence => NonNull NotEmpty
* add more SafeSequence definitions
* add NullError exception type
* start on default definitions for OrdNonNull
* also add headMay, lastMay, tailDef, initDef for IsSequence
export OrdNonNull
remove unused Pragma and import
Merge pull request #11 from snoyberg/non-null-semisequence

NonNull refactoring