First pass on returning potential load targets from Cabal

I am not sure what is the best way to return the target information.

Returning the actual `Library`, `Executable`, `Testsuite` and `BenchMark` values causes problems in the code using it due to mismatches between the Cabal in the GHC API and the ones used in ghc-mod, so returning FilePaths seems the best option. I think this is the same problem @JPMoresmau has found in his BuildWrapper.

I think the four categories of targets should be kept separate, so the using code can decide which of them to load.

In this pull they are returned in a tuple. I would be happy to use a specific structure for it, to make it clearer. Please provide input.