Redefinition of modules
Merged everything into a single module
Specify entire module name in Haddock header
Take all methods except isNull outside of the typeclass.

This avoids issues where two definitions are logically
inconsistent (e.g. making notNull = isNull).  Furthermore, as it
currently stands GeneralizedNewtypeDeriving doesn't work with the IsNull
class for functions like isNullM; this should fix that problem.
Merge pull request #2 from ivan-m/patch-1

Specify entire module name in Haddock header
Merge pull request #3 from ivan-m/Split-out-methods

Take all methods except isNull outside of the typeclass.
Merged tests into single file, accordingly to new module structure