Port library on the top of new resources.
Remove redundant CPP blocks.

Many CPP blocks exists for compatibility purposes, however
library is now not compatible with ghc older than 7.8. So
those blocks can be removed safely.
Define all extensions being used in cabal file.
Remove UnicodeSyntax & Cleaner type signatures