* refactor!: overall reorganization
* fmt: tab to spaces
* feat: split out funcs for better error collection
* feat: replace Vec-varianted Source with Vec<Source>
* docs: more generic description for Error::InvalidPath
* fmt: reduce signature verbosity
* internal: decolorize to prepare for proper colorization
* fmt: tab to spaces (again)
* refactor: break up App into main.rs, rm utils.rs
* test: only run cli::in_place_following_symlink on Unix, symlinks are privileged on Windows
* test: update insta snapshots due to Replacer::new()? in main()
* fix: restructure logic, Windows requires closing mmap before write
* test: properly mark no-Windows test
* test: properly mark temp. ignored test
* fix: retain unsafe property of Mmap::map in separate function
* chore: `cargo fmt`
* chore: Resolve lone warning
* test: Test a variety of fs failure cases
* refactor: Add back `try_main()`
* refactor: Rework error handling
* test: Update snapshots
* test: fix path inconsistency
---------
Co-authored-by: Cosmic Horror <CosmicHorrorDev@pm.me>