Use shlex to parse command line arguments for the SSH cmd
Add -e,--sshcmd support to remote commands.

Added support for the rsync-style -e command line option to explicitly
specify the command line bup should use for the remote shell. This
allows the use of advanced SSH options by specifying them on the command
line ala:

	bup init -r user@remotehost -e 'ssh -oCompression=yes'

or the use of alternate shells which accept addressing and command
invocation in the SSH style.

Signed-off-by: Will Rouesnel <w.rouesnel@gmail.com>
Revised documentation to show the new -e,--sshcmd arguments.

Updates the documentation for init, join, save and split to be inline
with the -e,--sshcmd argument and their usage in relation to
-r,--remote.

Updates the documentation for -r,--remote for init, join, save, split
and on to indicate that user@host notation can be used (no code changes
required it was already possible).

Signed-off-by: Will Rouesnel <w.rouesnel@gmail.com>
Merge branch 'improved-ssh-operation' into relativistic-indexing
Fix a bug in graft_paths in index.py

Graft paths was producing rooted paths since os.path.join reacts to a
trailing slash somewhat inappropriately.

TODO: it would be much better if we used all of Python's path handling
functions to do path grafting and did not assume '/' are dir separator
characters.