Make test pass with PyPy

Turns out that object() has a long repr() in PyPy.  This means that
the 'short objects' test was testing the wrong thing on PyPy, and
thus failing spuriously.

Fix by adding a `CustomRepr` object that deliberately creates a
short `__repr__`.
Add NEWS entry for pypy fix.
The ContentType repr() incorrectly used , instead of ;.
The error message for setUp and tearDown upcall errors was broken on
Python 3.4. (Monty Taylor, Robert Collins, #1140688)
Placeholder couldn't hold tags, which limits its use.
Add support for timestamp events to Placeholder objects.
Add a helper for decorating the result object given to
``case.(__call__/run)`` - DecorateTestCaseResult.
This defines a new sort of TestResult, StreamResult.

This is intended to prototype the new API for inclusion upstream.
Adds a recording StreamResult for writing tests with.
Adds a CopyStreamResult which copies StreamResult events to multiple outputs.

This allows applying multiple terminal handlers to one stream.
Provide a loosely typed buffer layer for simple processing of completed tests.

This avoids all of the buffer management and analysis and should be suitable
for most terminal filters.
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.
Fixed SyntaxError when installing via Python 3
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 safe for use in threaded/concurrent code.
Fix assertRaises when the exception has a metaclass

Due to not taking into account that the type of the class can be a
subclass of type (which is the case when using metaclasses),
assertRaises would report a false positive in case an exception that was
expected had a custom metaclass.

This patch introduces a more robust checking if a given object is a
class or an instance of one, and adds a test case, to make sure
exceptions with custom metaclasses don't break assertRaises.