block in catalog if someone tries to add something early

fixes the intermittent error we've been getting, such as:

https://buildhive.cloudbees.com/job/brooklyncentral/job/brooklyn/2413/io.brooklyn$brooklyn-core/testReport/brooklyn.entity.rebind/RebindCatalogEntityTest/testRestoresAppFromCatalogClassloader/

does so by blocking if the catalog is not yet fully loaded when someone tries to add something manually to it.  there are better fixes as noted in the code (manual additions could be done in bg) but this is a quicker pragmatic workaround.
It *is* double-checked locking, but using a volatile variable for `isLoaded` so double-checked locking is not broken in this situation. I'd go with deleting the optimisation as well.