Integrate Logger into the test framework

 - Converted Logger to a singleton to prevent an initialisation race
 - Linking against libTest will now capture all output to a custom
   logger, which will be dumped to file at program exit
 - Individual tests are captured separately, and again dumped to file.