Fix UTF8Type serialization for already-encoded utf8

If your data is already utf-8 encoded by the time it reaches the UTF8Type.serialize() method, the encode() will fail, raising a UnicodeDecodeError.
Explicitly testing the type for Unicode before the .encode() should guarantee it doesn't fail, and in cases where it isn't Unicode, we simply test whether it's already a valid byte-encoded unicode string by attempting to decode it. 
This shouldn't add any significant overhead for strings passed in as Unicode, will prevent unnecessary failures with already-encoded Unicode strings, and raise a UnicodeDecodeError otherwise.
try..except on UTF8Type serialize for pre-encoded strings

Wrap ustr.decode() with a try..except block to handle failure to encode strings of already-encoded unicode.
Fix token ring wrapping
libev: handle EAGAIN when message len matches buffer size
Add error/host details to OperationTimedOut
Fix tracing with non-default row_factory

For PYTHON-49
Merge pull request #78 from nisanharamati/master

Fix UTF8Type serialization for already-encoded utf8
Update changelog
Fix token-aware routing for tokens before first node

Fixes #82
Merge branch 'fix-token-wrapping'

Conflicts:
	CHANGELOG.rst
Tolerate null source_elapsed in trace events

For PYTHON-48
Increase default timeout for large data integration tests
Bump version to 1.0.1
Update version to post-release
Update test-running instructions in README-dev.
Also fix EAGAIN handling of large msgs for asyncore
Remove ignored tracing_enabled param of SimpleStatement
Decode TimestampType as DateType
Lowercase KS properties
Merge pull request #86 from Mishail/lowercase_ks_options

Lowercase KS properties