Allow manual acquire/release of pool resources.

* Rename `take` to `transaction`.
* Extract acquisition and release phases of `transaction` into
  `acquire` and `release` methods.
* Rename `element` to `resource` to more accurately describe what is
  in the pool.
* Added test for manual acquire/release.
Fix one forgotten reference to `elements` rather than `resources`
Add ability for streams to release the transport object back to the pool.
Allow unwrapped connection acquisition in client operations.

Resources may now release themselves back to the pool, rather than
requiring the caller to have a reference to the pool.
Change streaming operations to manually acquire connections.

This will require the caller to exhaust the iterator, use
contextlib.closing or manually close the generator when done.
Document the requirement to close the iterator
Fix PEP8 errors
Use close() instead of shutdown() on the socket when destroying the connection.
Merge pull request #357 from basho/bugfix/streaming-conn-leak

Fix connection leaks when streaming

Reviewed-by: javajolt