* build: ensure consistent package-lock across multiple machines
* build: fix linting errors and use npm ci instead of npm install
* build: use a yarn.lock and yarn instead of package-lock and npm
* chore: replace package-lock.json files with yarn.lock
* chore: replace last instance of `npm install`
* build: optimize the happy path when syncing on CI
This adds a new cache for the "src" directory that is only ever used if
the cache key matches exactly. If there is no exact match we fall back
to the old strategy of using the git cache.
On the happy path this can make the checkout on linux/macOS take around
5-6 minutes which is **significantly** faster than the original 15-18
minutes.
* build: sort readdir result to ensure stability
* build: increment cache key
* Update config.yml
* build: ensure that the cleanly checked out Electron has had hooks run on it
* build: do not remove deps/v8
* build: ensure clean git directory when generating deps hash
* chore: add comments to caching logic
* Update .circleci/config.yml
Co-Authored-By: MarshallOfSound <samuel.r.attard@gmail.com>