Hearing jam saying "vila, you're trying too hard", I simplified again.
* bzrlib/transport/sftp.py: (SFTPUrlHandling): Simplified to the point only _remote_path remains at which point _remote_path have been put under SFTPTransport and the class itself deleted. (SFTPTransport._remote_path): This is the only point where home dir related processing needs to occur. (another use case for tracking moving lines).
* bzrlib/tests/test_sftp_transport.py: (SFTPTransportTestRelativeRoot.test__remote_path_relative_root): Internally we use '/~/' to indicate home dir relative paths, only _remote_path will strip that.