Extracted reporting functionality

This refactoring have moved a lot of the code responsible for reporting
test progress out of the runner and into a more generic polymorphic
structure, allowing for new types of reporters
Added success criteria to reporter interface
Simple tree reporter (does not handle success yet)
Moved Runner to separate file
Merge branch 'master' into refactor-test-reporting
Generalized TestReporter specs

Allows the use of the same specs for new test reporters
Implemented success criteria on TreeReporter
Added colored output to TreeReporter
Merge remote-tracking branch 'origin/master' into refactor-test-reporting

Conflicts:
	core/DomainTypes.fs
Parameterized print function in tree reporter

Makes it possible to inject a different print function in tests, verifying tree
reporter's behaviour.
Fixed file order in VS project
First step towards general summary print
Write no of failed tests to output
Merged Begin/End Example to one function

Removes the possibility of the illegal state that EndExample is called when
BeginExample has not.
Merge remote-tracking branch 'origin/master' into refactor-test-reporting
Print failing tests to console
Removed code duplication in TreeReporterSpecs
Implemented writing containing groups for failed tests
Print failure msg in test report summary