* util: Unify lockfile handling
This patch:
- Renames `util.lock.lock_by_path` to `util.lock.lock_path` and improves it by using `FileLock`
- Unifies all places where we create lock files to use `chia.util.lock.lock_path`
- Changes the daemon lockfile from `start-daemon.launching` to `daemon.lock` like we have it with all `<service>.lock` in the `run` folder
- Drops the `fastener` dependency
* Move the not keyring related sync tests into `test_lockfile.py`
* Enable clvm_tools_rs by default
* Re-add clvm_tools dep for now as it provides python idioms for interacting with clvm data
* Take lint formatting
* Adam: Try making this non-parallel
* Try fix for threading issue in tests
* Test whether turning off parallel runs causes things to work (temp)
* Test use of temp files in clvm_tools_rs as a candidate solution for atomic replacement of hex output
* Use proper git+https url scheme (oops)
* Update to candidate 0.1.6 so we can test
* Revert version bump to re-test
* Test whether we can re-enable parallelism
* Attempt to mitigate concurrent test running: return own conception of the compiled output. This will work if the failing path is downstream of recompilation
* fix path to hex file
* Probe for source of 0-length data
* Further exploration: more assertions, hopefully to trigger in the test on ci
* Do an even more paranoid check to verify that we observe a file whose filesystem reported size is much smaller than expected
* Try a heavier handed approach, using heavyweight lockfiles on the filesystem
* Import a simple lockfile implementation and use it to enforce mutual exclusion. Simplify it and remove the unwanted os traffic
* Take lint, precommit advice, bump to clvm_tools_rs 0.1.6 now that it's released
* Fix lint
* While i was working on this, -n auto was on the command line so i think this didn't actually do anything, but reverting my change just in case
* Lint
* label the hashes re: pr
* Add a lock.py for spot exclusivity using the filesystem (re: adam in the pr) and a convenience wrapper that hides the details
* Formatting warning
* Ensure type info is present and do the obvious return of the inner function's result
* Use double quotes (lint)
* Properly balance blank lines
* Lint: alphabetize imports
* One line is required here (lint)
* Remove unnecessary assignment