This commit introduces the `borg verify` and `borg repair` commands to check the integrity of archives and repair them from a source URL.
Key changes:
- Added `cmd/verify.go` and `cmd/repair.go` with the new commands.
- Modified `pkg/datanode/datanode.go` to include a `manifest.json` file with SHA256 checksums for all files in the archive.
- Implemented archive structure validation, checksum verification, decryption testing for `.stim` files, and manifest completeness checks in the `verify` command.
- Implemented logic in the `repair` command to identify corrupted files and re-download them from a source URL.
- Added unit tests for the `verify` and `repair` commands.
The current implementation has known issues that were identified during a code review, including a critical bug that causes data corruption when repairing encrypted archives. A new plan has been created to address these issues. The code is being submitted in its current state to save progress.
Co-authored-by: Snider <631881+Snider@users.noreply.github.com>