Added twisted-based event loop

This should address PYTHON-8.

- added unit tests
- import twistedreactor in cluster if libev is not available
- fixed unittest import and added copyright notice
Merge branch 'master' into twisted_event_loop
Use io.BytesIO instead of six.BytesIO
Remove unused methods
Minor refactor of loop state handling
Defunct where appropriate
Add twisted reactor to benchmarking tools
Prefer asyncore instead of Twisted
Update docs about available reactors
Update changelog
Update twisted reactor unit tests
Pass user type map to decode fns as necessary
Use registered UDTs for non-prepared encoding
Merge branch 'master' into 2.1-support