PackageTests: add full range of TestSuite/Hpc tests

Also runs the HPC tests regardless of the detected version.
Build shared library when linking executables dynamically

Dynamically linking executables will fail without a shared library
unless the executables do not depend on the library or there is no
library. If there is no library, building shared libraries comes at no
cost. If there is a library, the executables usually depend on it, so it
makes sense to --enable-shared.

If the user passes --disable-shared, it will still be honored, but a
warning will be produced.
Enable library profiling when profiling executables

It doesn't make any sense to do a profiling build of an executable if
the library doesn't have a profiled build! The option
--enable-executable-profiling is changed to --enable-profiling to
reflect that it is now a global flag. The old option is still recognized
(for now).
hpc: separate module interfaces by compilation way
PackageTests: set dist prefix

Some package tests run multiple tests on the same package, causing the
build directory to be overwritten. For debugging, it is important to
keep the build directory contents, so in this case we run each test
with a different build directory.
Document --enable-coverage
PackageTests.TestSuiteExeV10: make HPC tests conditional on HPC version
Merge pull request #2286 from ttuegel/hpc

Fix compilation ways
Merge branch 'master' of github.com:haskell/cabal
Always setup (DY)LD_LIBRARY_PATH for testsuite

Now that Cabal is in charge of RPATH handling on certain OS',
we must always setup a correct (DY)LD_LIBRARY_PATH when
running the testsuite. Not just when we are building relocatable
packages.

The "problem" is, is that Cabal now adds an RPATH pointing
to the installation location of the library. However, during
testing, the library won't be there yet. We much hence setup
a (DY)LD_LIBRARY_PATH that includes the dist/build dir.