Add coverage and profiling to the test framework

Tests can now be executed with coverage testing, using gcov.

A utility command
   >> make coverview
is provided for viewing the data, but a later change should export this
data to html

Test can now be profiled. The test class has been enhanced with a
"profile" mode. In this mode the log object is replaced with a dummy
object that does no work. Test are also looped over so that they are
guarenteed to execute for several seconds - increasing the accuracy of
the profile.

Currently profile data must be manually viewed:
   ( from a location in Tests/<test folder> )
   >> gprof ../tests/<test name>
View profile data through html page

The makefile library has been enhanced to enable viewing of profile
data from a web page, making it easier to jump into why functions are
taking too long