Switch to Yarn and optimize CI for its use
Yarn is now used instead of NPM for package management. It is needed for its workspaces feature which allows us to setup Angular with multiple repositories.
CI jobs have been optimized for its use. Packages are now installed in a separate job. While an additional job increases the time to run the pipeline other jobs no longer need to push to the cache which should make up for it. Furthermore, the build is sped up by allowing more jobs to run in parallel.
A comparison of Yarn and NPM commands:
https://classic.yarnpkg.com/en/docs/migrating-from-npm/#toc-cli-commands-comparison