Don't list Haskell extensions in .cabal file, put them in source files.

Turns out some tools won't look into the .cabal file to see which extensions to
use. I thought putting them there would reduce some redundancy but I suppose we
will have less headaches if we just have each file list whatever Haskell
extensions they need.
Become compatible with GHC 7.6.3.
Update to readme that we no longer need GHC 7.8.x, 7.6 series is enough.
Expose all modules.

No reason to hide them. They have "Internal" in their names so it should be
obvious to any users that they should not expect stability or any guarantees.