Cache lockfiles, remove Root global, and related refactorings (#690)
* Changes up to Alire.Roots
* Finished migrating from Workspace
* Root is stored in Alr.Commands.Command for reuse
This way the global Root is no longer reloaded many times, and modifications
are properly encapsulated via the Alire.Roots.Root type. This removes one of
the outstanding code smells in Alire.
* Speed-ups related to lockfile checks
There were a number of overkill checks that furthermore were expensive, loading
the lockfile many times. This became quite noticeable for large lockfiles (once
there is a decent number of dependencies).
* Minor tweaks to comments
* Tweaks after merging from master
Two big PRs were merged from upstream that created some friction with these
changes, requiring minor tweaks.
* Temporarily disable `alr build` CI check
To allow merging with changes in dependencies, temporarily disable the
aforementioned check.