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.
Since this is a potentially blocking call, I'd suggest removing the first `isLoaded()` check, outside the critical section; we aren't time sensitive here, and the code layout looks _really_ like double-checked locking, and will cause the viewer's concurrency alarms to go off... Better to go with the simpler code layout and avoid having to explain every time :frog: