fix the __destroy_connection function

remove the assert statement that will fail in every case
of deleting a connection
fix the connection reuse when streaming content

The changes for the connection pool introduced a bug
that made streaming fail. When streaming out, i.e. using
an API function that returns a generator, the connection that
was used by the generator could be prematurely destroyed or
given to another request.

This patch implements an additional wrapper inside the
get_connection generator that binds the currently used connection
to the generator that is (part of the) API function result.

The implementation is as generic as I can think of right now
and supports functions returning generators as well as functions
returning tuples in which one element is a generator.

I have not checked how much this influences performance.