Documentation changes and some small fixes
Major refactoring

Move all types into the Internals modules and export read-only functions
through a different modules.

Completed .cabal file and renamed it to match name.