More Reporters, Some Refactoring, Documentation

Hi Cameron,

Firstly, thanks for importing my previous changes.

I'm raising another Pull Request, all related to the same area, this time with the following changes:
* Implementing a few more basic reporters.
* Refactoring of the JUnit reporter.
* Fixed missing statement ```ROUTINE-LEVEL ON ERROR UNDO, THROW.``` in BaseReporter and JUnitReporter. 
* Documentation changes to show how to use the reporters.

More details below,
Thanks,
Mark

More Reporters
--------------
I have now implemented a secondary level of base class, called "FileReporter" (an abstract class) - this is intended to be used for any reporter that outputs to a single file.

From this, I have created two new reporters:
* TextReporter - This takes the output from the TestResult:ToString() method and writes it to the file
* CSVReporter - This lists out the tests that were run in a CSV format, so that it can be read in a spreadsheet application.

Refactored JUnitReporter
------------------------
I have changed this so that it now inherits from FileReporter rather than BaseReporter, and have removed duplicated code that is now held in FileReporter.

Missing ROUTINE-LEVEL ON ERROR UNDO, THROW. Statements
------------------------------------------------------
This statement was missing from BaseReporter and JUnitReporter, and I've added it back in

Documentation
-------------
Create new page in the documentation for using the Reporters.