Add StreamSummary to generate summary statistics and capture failures.

This is equivalent the to behaviour in the TestResult class, but split into a
dedicated helper (so that decorators and the like don't need to waste cycles
generating them).
Add a dedicated interface for controlling an in-progress TestRun.
Add an adapter to convert ExtendedTestResult to StreamResult.

This permits using code that uses any Python unittest test code
with a StreamResult.
Add an adapter to adapt StreamResult event streams into ExtendedTestResult.

This permits running existing tools like test runners and reporters with
StreamResult generating test runs adapting any unittest or testtools compatible
TestResult into a StreamResult.
Add StreamTagger, for tagging StreamResult events.
Add a timestamping StreamResult.

This allows event generators to ignore the timestamp field, it can be added
into the stream - as long as it is before any buffering/queueing/blocking occur
it will be accurate enough.
Add a StreamResult decorator safe for use in threaded/concurrent code.
Add a StreamResult Router.

The router dispatches packets to another StreamResult based on their
route_code, stripping the matching section. Unroutable events are forwarded to
a fallback stream.
Allow customisation of testtools.run --list-tests behaviour.
Add IncompleteTestDetector, for detecting incomplete tests.