Changing GHCMod as a library.
Moving commands to Ghc monad
Separating IO and Ghc.
writing docs.