Add option to preserve symlinks

Previous behaviour was to resolve each symlink locally, and reupload the referenced files. However, this fails if a symlink points to a directory. For me, the desired behaviour is to make no attempt to resolve symlinks, and preserve them in their original form by creating identical symlinks on the remote computer.

This behaviour can now be enabled by setting preserve_symlinks to true in the config file. By default, the behaviour should be unchanged though. Currently only the SFTP adapter is supported by this parameter, though it should be possible to make it work for others too.

Apologies for the large changeset; please let me know if anything should be implemented differently.