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.
No more Python 2.5 on Travis :(
Merge branch '1.8' into 1.9
Merge branch '1.9' into 1.10
Merge branch '1.10' into 1.11
Merge branch '1.11' into 1.12
Update travis settings to be similar to fab's
Merge branch '1.8' into 1.9
Merge branch '1.9' into 1.10
Merge branch '1.10' into 1.11
Merge branch '1.11' into 1.12
Add a testcase for client.save_host_keys.
No need for 'self.tc' within a single test :)
Small refactor
Saner (to me) positive assertion
Check correct stored hosts filename.
ditto
Changelog, fixes #176
Merge branch '1.10' into 1.11

Conflicts:
	NEWS
Merge branch '1.11' into 1.12

Conflicts:
	NEWS