Refactor to allow multiple reporter definitions
Add Tap reporter
Remove usage of $GLOBALS to pass cli

- Changes GivenPHP to require an instance of IReporter
when created.
- Allows get_instance to be passed an instance of IReporter
to be used when first creating an instance of GivenPHP to be
used as the singleton

This still doesn't feel entirely clean with the optional
instance of IReporter needing to be passed to get_instance on
first run. I originally wanted to use a...
```php
GivenPHP::get_instance()->setReporter($reporter);
```
...method but I realised that the reporter needed to be set in the
constructor so that...
```php
$this->reporter->reportStart(self::VERSION);
```
could be called in the constructor as well.
I could move that out instead...
Add echo wrapper class with optional color
Add tests for default reporter
Refactor default reporter to use output class
Add tap reporter tests
Add comments to IReporter interface
Refactor tap reporter to use output class
Add commenting to the default reporter
Adds commenting to tap reporter
Refactor default reporter into smaller methods
adding some phpdoc - exported reporters to a sub namespace
added missing call
updating phpdoc for some methods
Merge pull request #5 from thomasruiz/pr/4

Pr/4