Parse: Fix parsing of ghc-options and similar. Fixes #1346.

So far,
    ghc-options: -with-rtsopts="-A1000 -H1000 -K1000"
was parsed and run as as
    'ghc' ... '-with-rtsopts="-A1000' '-H1000' '-K1000"'
which will fail.

This is because we *tried* to parse quoted spaces (by leveraging
reads to parse them as Haskell Strings), but only at the beginning
of an option.

This commit fixes it by allowing String literals also in the middle
of options.

Note that because of the fact that we are still using reads,
    ghc-options: -with-rtsopts='-A1000 -H1000 -K1000'
(single quotes) will still fail.

The example from above now parses and runs successfully as
    'ghc' ... '-with-rtsopts="-A1000 -H1000 -K1000"'

This change applies to:
* ghc-options
* cc-options
* cpp-options
* ld-options
IndexUtils: Improve error message