Redesign of SSHFile: track an underlying SSHConnection that has a __del__ that disconnects its transport. SSHFiles are now automatically disconnected on garbage collection.

Also rename SSHFile.connect_with_password to SSHFile.connect and teach it to authenticate using ~/.ssh/id_rsa, and still create SSHFile even when paramiko's missing.
Make a base class, BaseFile, which all of the interface classes subclass
Teach URL to understand ssh:// URLs and return SSHFile objects