Rewrite `ghc-mod` command line frontend.
removing spaces.
removing target file set from ghc-modi.

This prevents errors if a package has multiple targets and test suites.
But this is still fast enough.
ghc-modi's "find" now catches up if packageDb is updated.
check does not use overrideGhcUserOptions again.

- workaround for #376
- logically reverting ec1b115cc1d3d2341201a97b0b9f2dda5da9f660
fixing typo.
removing warnings.
restart a GhcMod session if the cabal file is changed.
Misc module for ghc-modi.
generating "autogen/" if not exist (#326).
CreateProcess hack for old GHCs.
moving PackageDb stuff to GhcPkg.
exporting setupConfigFile.
using void.
prepareAutogen skips its work if a cabal file does not exist.
trying to fix travis ci.
adding World.hs.
getConfig runs "cabal configure" first if setup-config is invalid.
Merge remote-tracking branch 'upstream/no-set'

Conflicts:
	Language/Haskell/GhcMod/Find.hs
Merge branch 'master' into release