Introduce a HMBKP_Path class to replace hmbkp_path();

`HMBKP_Path` handles everything related to finding/creating the backup path, keeping it clean and protecting it.

Replaces all the logic in `hmbkp_path()` & `hmbkp_cleanup()` with new atomic methods and introduces unit tests.

It also improves some of the core functionality.

- No longer relies on storing the backup path and default backup path in the options table.
- Instead it simply reads `WP_CONTENT` dir and uploads and looks for a backup directory directly.
- No more duplicate directories
- No more losing your backups directory if you lose the `hmbkp_path` option
- handles merging multiple backup directories
Ah that makes sense, maybe we should chmod them instead or use exec to change them or something.