Fix issue 34 (SFTPFile prefetch assumes response order matches requests)

SFTPFile._async_response gets a new 'num' parameter giving the request
number.  This can be matched up with the return value of
SFTPClient._async_request() to retrieve data specific to that request.

The prefetch queue SFTPFile._prefetch_reads is replaced with the dict
_prefetch_extents, which maps request numbers to (offset,length)
tuples.

A lock is used to exclude the case where a response arrives in
_async_response before _prefetch_thread has updated it.
Add Py3 compatibility support helpers
Add Py3.2 and Py3.3 to travis
Fix print statements
Add Py3.2 and Py3.3 to tox
Add Py3 helpers to common.py
Uncap the requirements
Write to locals instead of globals
Fix imports
Use test_path to avoid relative path issues
Fix imports
Fix dict iters, sorts, exceptions, bytes renames and tuple args
Fix imports
Fix message sending

Create constants for byte messages, implement asbytes so many methods can take Message and key objects directly and split get_string into get_text and get_binary. Also, change int handling to use mpint with a flag whenever the int is greater than 32 bits.
Fix winapi
Convert and detect types properly, use helper constants, use StringIO and range
Fix input
Fix next
Fix bytes/str type in more places
Setup so we can run test_sftp_big independently