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.
Fix extra colon in changelog
Changelog re #35
Merge remote-tracking branch 'ewxrjk/issue34' into sftp-reordering-34
Replace incorrect import of generic test runner w/ custom task
Future import for with: under py25
Whitespace
Herp and a derp
Clean up a list-comp (also fixes race condition)
Add coverage command as Invoke task