Load config from a file, and store backups in a directory rather than on an FTP server.
Add mount context manager class.
Print commands as they are executed.
Implement snapshot context manager class.
Use context manager classes for managing mount points and LVM snapshots.
Example config file.
Use traceback module to print exceptions.
Improve appearance of line breaks.
Fix swapped params in example config.
Add 'auto' mode.

Backups will now be storted in the same directory, no matter the date.
'auto' mode will do a full backup if the previous full backup
occured more than a week ago; otherwise, it will do an incremental.
Use ConfigParser module to manage configuration.

The script now takes two arguments: path to config file, and type of
backup.
Move definition of errors closer to use
call: return stdout of process to caller
Move passphrase/ftp password into generic environment config section
Prepare for the return of FTP target support.

The backup target is now specified by the target.uri config variable,
which is a Duplicity URI.

If target.mount is set then it will be mounted during the backup run. It
should be the name of a device or directory configured in /etc/fstab
such that 'mount ${target.mount}' will succeed.
Look up backup functions in a dict indexed by the backup type from the job configuration
Try to work around strange mesages from lvcreate by delaying before calling it
Launch processes with /dev/null on stdin.

Prevents Duplicity hanging while waiting for a password if it is not
specified in the 'environment' section of the config file.
Move the full/incremental argument to duplicity before the options.
Read the config file data in a case-sensitive manner.