Preliminary code coverage reporting infrastructure

Add support in core/test/Makefile.check to build -gcov
binaries (with -lgcov and -fprofile-blah-blah) as well
as some targets for producing lcov HTML code coverage reports.

As part of this, I had to fix up an oddity in run-mem_region_init
where that due to running under Valgrind, we'd be malloc()ed a
heap with a small address, well inside the mem_regions we added but
when not running under valgrind (e.g. for code coverage reporting)
we would get a much larger address, outside this range and hit
an assert. So, after fiddling with the memory stuff for this test,
I think I have it right - it passes both under valgrind and not and
does produce code coverage data.

Currently, we're at this level of code coverage by unit tests:

            Hit   Total  Coverage
Lines:      1936   2574    75.2 %
Functions:   177    225    78.7 %
Branches:   1243   2360    52.7 %

The totals should largely be ignored due to the only code being
counted is that linked into the unit tests (total LOC is ~50kLOC
according to sloccount... so unit tests currently cover < 5%)

Try the "make coverage-report" target, you'll get coverage-report
directory with a LCOV HTML report

Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>