first pass at only including wp_upgrader class when needed
Remove `.DS_Store`
When a backup starts, log the process ID. When it's completed, clear the process ID log.

See #60
Avoid duplicate code by having `zip_archive()` use the `get_included_files()` method
First pass at a bit of code for writing a file manifest
Convert the `zip()` method to support using file manifest
Improve I/O performance by only periodically writing to the file manifest
`file_put_contents()` is the same as this
Retool file manifest for `zip()` such that it saves files in batches instead of individually.

This radically improves the performance of the file-manifest approach
Revert "Avoid duplicate code by having `zip_archive()` use the `get_included_files()` method"

This reverts commit 8ad2ac5b25c504a8dcbcabf21495170759990a00.

Memory issues: https://github.com/humanmade/hm-backup/issues/45#issuecomment-26817146
Use `get_files()`, which returns an iterator, which will be more performant for large sets of files
Boost performance for large backups
Support for file manifest with ZipArchive
Use file manifest for backups with WPR
Refactor how file manifest works

Joe thinks this is abstraction. I'm not so sure
Better comments
Easier to track where errors are being unset this way
Accommodate an empty array of errors
Stream the data to the file, instead of writing it all at once, to avoid issues with large files

See https://github.com/humanmade/WP-Remote-WordPress-Plugin/pull/81#discussion_r7144333
Use `rmdir_recursive()`, which will properly delete hidden files too on a failed backup