Overhaul HPC support
This fixes issue #1945 and replaces pull request #1947. These bugs in #1947 are fixed: * The pull request no longer applied cleanly to master because of the Binary LocalBuildInfo patches. * The new test cases did not put the generated HPC interface files under "dist/", so the files weren't cleanup up correctly. * HPC interface files for each component need to be separated, but the were being combined into the same directory. These enhancements are also implemented: * Program coverage is now used for all components when enabled and the flag --enable-library-coverage has been changed to --enable-coverage. * A helpful error message is printed if the obsolete flag --enable-library-coverage is used.