Handle socket read timeout in `_available_child`
When `FTPFile.close` causes a socket read timeout, the _next_ read on
the socket will raise an `OSError`. Hence, the `OSError` can happen in
the `host._session.pwd` call in `FTPHost._available_child`. Catch this
`OSError`.
Although the fix in `ftputil.host.FTPHost._available_child` will make
the child session handling work, socket read errors could result in
child sessions being returned in a non-reproducible way. To make the
identity checks in the tests reproducible, use the small `CONTENTS`
file instead of the larger `debian-keyring.tar.gz` file. Investigation
of ticket #112 showed that socket read errors would rather occur with
larger files.
This change in the tests is slightly hackish, but should be ok, unless
it'll cause other problems later on.
ticket: 112