added additional backup tests
added BACKUPS_TO_KEEP=0 test
added test for creating backup directory
refactored the restore code a little

added start_restore and end_restore and is_doing_restore functions. made
things a little more declarative.
created new check_file_exists function

this is used for hard-exiting with an error message in the event that a
required file does not exist.

also wrote tests around it.