CI: Split CI workflow into code checks, docbuild & web, and arraymanager
- [x] closes #37242
- [x] tests added / passed


`ci.yml` split into:

* `arraymanager.yml`
* `code-checks.yml` (includes `pre-commit.yml` now)
* `docbuild-and-upload.yml`
Does this mean that if one fails we can re-run just that one? > Does this mean that if one fails we can re-run just that one?

Yes where "one" is the entire workflow. 

e.g. If the arraymanager tests fail, the docbuld or code checks won't be re-run
e.g. If one code check fails, all the code checks still need to be rereun https://github.com/actions/runner/issues/432 I think it might be worth waiting for github/roadmap#271. Of course we could also merge this now and revert when that is implemented. > I think it might be worth waiting for [github/roadmap#271](https://github.com/github/roadmap/issues/271). Of course we could also merge this now and revert when that is implemented.

github/roadmap#271 would make this a lot nicer (as well as our other workflows). 

I have slight preference just splitting now to make re-running things more focused in the short term. Additionally I think the splitting here has a better separation of concerns IMO. thanks @mroeschke seems ok to do now