Refactor and test

This pull requests refactors the RTF Runner class to make it more testable. It also reduces redundant logic between the GUI and the Console applications for RTF by moving logic that is similar in both applications into the Runner itself. Runner's public methods are now reduced to the following:

SetupTests()

This method uses a supplied assembly, category, fixture, or test data object to setup tests for running. In this phase, journal files are generated, the RTF addin is generated, and the system's addins are copied to the working directory.

RunAllTests()

This method uses the test dictionary created during the setup phase to run all tests.

Refresh()

This method is used when the runner is required to clear its collections and re-read assembly data from a new assembly.

Cleanup()

This method is called when testing is complete and journal and addin files need to be removed.

Tests are added and a mock of IAssemblyData is used to test various setup cases.

@Randy-Ma PTAL

I see Gui is removed from many other places. Then why is it reserved in the setup data?