Backups for fab deploys, tidied fab deploy, and new function for testing fab deploys locally

Take a backup of the db and root directory at start of each fab deploy, keeping only one previous backup.

Also, further tidying of fabfile.deploy function as suggested by Hamish:
- Added check_for_local_changes() (called from overriden fablib.deploy)
- Create env.project_root using existing fablib function, not manually
- Stop calling the following from fabfile.deploy because an equivalent is called from tasklib.deploy()
    - collect_static_files
    - update_db
    - load_fixtures

Also, added a new function for testing fabric deploys on localhost via 'fab dev deploy'.