Add UserDefinedType support
Pass protocol version to ser/deser functions
Minor fixes and unit test updates
Protocol-version specific collection decode/encode
Merge branch 'master' into 2.1-support
Use v3 collection serialization inside UDTs
Serial consistency level support for BatchStatements
Support for protocol-level timestamps
Merge branch 'master' into 2.1-support
Handle v3 schema change messages
2 byte request IDs + queue-less req ID management
Don't require proto version to be passed to bind()
Merge branch 'master' into 2.1-support
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
Replace six.BytesIO with io.BytesIO for speed-up

On python 2.6 and 2.7, six.BytesIO maps to StringIO, which is slow:

https://github.com/kelp404/six/blob/master/six.py#L478

Python 2.6 and 2.7 provide the io module (for compatability with
the Python 3 io module), which defines a faster BytesIO implementation.
cProfile reveals a significant speedup when using the io module. Using
six.BytesIO:

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
  ...
  2277792    9.736    0.000   13.088    0.000 /usr/lib64/python2.6/StringIO.py:208(write)

However with io.BytesIO:

  2277792    0.920    0.000    0.920    0.000 {method 'write' of '_bytesio._BytesIO' objects}

This will break on Python 2.5, but I think that's ok.
Merge pull request #143 from ccstolley/fix_slow_stringio

Replace six.BytesIO with io.BytesIO for speed-up
Use BytesIO for reduced CPU consumption

Relates to #143
Merge branch 'master' into 2.1-support

Conflicts:
	cassandra/protocol.py
Collect UDT info, handle UDT schema change pushes
Define serializer for UDTs