Introduce TracebackFuture and use it where applicable.

This allows for better tracebacks when using Futures on Python 2.