Multi VM forked test & test output segregation

Currently SBT is unable to run tests in parallel while providing a meaningful trace:
test outputs are interleaved. This is especially annoying when a test pass on
your machine but breaks on a continuous integration server.

This commit allows running forked tests in multiple VM, enabling test output segregation.
In order to report test outputs a refactoring of `TestReportListener` was necessary,
breaking compatibility with 0.13.
In addition SBT provides now a reference implementation of the new `TestReportListener`,
formatting test reports in JUnit XML.

Those features are disabled by default and are activated with the following settings:
  * `testNumberForkedJvm` : controls how many VM are used to run the tests
                            Note: this is reduced if there are fewer tests than vm
                            Note: forking must be enabled (`fork in test := true`)
  * `testHideSuccessfulOutput` : when set to true, do not print tests output on the console
                                 Note: this does not work in non-forked mode
  * `testReportJUnitXml` : when set to true produce reports in the JUnit XML format
                           Note: in non-forked mode test outputs are not captured

Meaningful (debug level) logs are produced for each of these features.