I think this is very close to ready, running tests and precommit and such again.
It touches a lot of files, but most of them are changing solrcore.getCoreDescriptor().getCoreContainer()
Along the way I renamed a few internal variables to more accurately reflect what they're supposed to be.
There may be a few gratuitous format changes, I upgraded IntelliJ and somehow had the "strip trailing spaces on save" set and "reformat whole file" rather than "only reformat VCS changed text". I went through and undid all the gratuitous junk I could find, but a few might have snuck through.
Structurally this is significantly better I think. There were a number of places where we were using the CoreDescriptors to infer the state of the SolrCore. The big thing this patch does is try to separate the use of CoreDescriptors and SolrCores.
The other change here is it moves the CoreContainer reference from the CoreDescriptor to SolrCore.
I'll commit this in a day or two unless there are objections. It' incorporates both
SOLR-10008 and SOLR-10009 so I'll close those now.