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