IOError exception to include errno correctly
Refactor errors into StorageError exception

python-swiftclient doesn't deal with socket.error, so SwiftStorage
class needs to capture it so it can be translated to the right
errno code (socket.error base is IOError, but we want to control
the errno that needs to be returned to the NBD client).

ssl.SSLError is based on socket.error.