Merge pull request #1 from frsoares/ghc-api

Ghc api
More moving token management to TokenUtils. TypeUtils.addDecl
addTopLevelDecl now clean, must just manage token offsets in TokenUtils.
Problems.
More work on TokenUtils. Marker before replacing the SrcSpan in
TokenTree with a ForestLine based one
Replaced SrcSpan with ForestSpan in the token tree. Most TokenUtils
tests pass.
Progress on TokenUtils
Add reAlignToks to addNewSrcSpanAndToksAfter as well. TokenUtils
coming on.
Brought in marker on token filename to allow post-refactoring token
realignment, else multi-stage refactoring find the wrong toks
Sorted out retrieveing SrcSpans for adjacent tokens.
Starting to provide for an indent offset relative to prev SrcSpan for
inserted tokens
Renamed MonadUtils to MonadFunctions to work around a silly ghc-mod
flymake reporting issue
Cleanup, and TypeUtils.addDecl now passing all its tests.
Oops, needed to work extra colIndent param through
Merge remote-tracking branch 'osandbu/ghc-api' into ghc-api

Conflicts:
	src/Language/Haskell/Refact/Utils/TypeUtils.hs
Cleaned up some flymake reported warnings
startEndLocIncComments now better splits out comments belonging to the
current decl, rather than preceding or followinging ones
Brought in Positioning type to specify how new tokens should be
inserted in the tree
Added number of following lines to the PlaceOffset structure
More work on improving the token management in TokenUtils
Another test scenario. Remembering that we must only worry about refactoring when the clashing MVars are really being treated like MVars.