Support cabal configuration flags

Currently, ghc-mod uses a project's default configuration flags for finalizing the `PackageDescription`. This means that if you're working on code that is only intended to be compiled with a non-default flag assignment, `ghc-mod check` will not actually check it. 

I've made the necessary changes such that `ghc-mod` will use the flag assignments from the local build info. This does change the signature of `parseCabalFile` slightly, becoming slightly less general, but it doesn't seem to break anything. 
No exceptions please, use throwError instead. Just let the function return Either and do throwError at the call site.