Rerun suite after code generation

Note: this has not yet been tested on Windows platform

Automatically reruns the tests after class or method generation:
![rerun](https://cloud.githubusercontent.com/assets/237866/4035941/0f38bc18-2c95-11e4-97b8-4f27b1b2f3a2.gif)

This behaviour can be disabled at the CLI with the new flag `--no-rerun`, or the existing `--no-interaction` or `--no-code-generation` flags (because code generation events will in that case never happen). This behaviour can also be disabled with `rerun:false` in `phpspec.yml`.

This has different resource impact depending on platform:
* Pcntl - on POSIX systems the current process is abandoned and a new one started in the current process space - there is no overhead in this case.
* Passthru - the fallback for non-POSIX systems, this starts a new process for each rerun. This could in theory lead to tens of processes; all will terminate after the last suite run.

To do:
- [x] Initial implementation that works on Unix
- [x] Some strategy for testing in Behat
- [x] Some configuration
- [x] Config file option
- [ ] Check it doesn't explode on other platforms (Windows)
- [ ] Incorporate #417 and #481 if they get merged 

 
@stof This can really only be used in a console context; if someone wants to make a web interface they will need to have their IO::isRerunEnabled() return false (see other discussions re: IO interface)