Fix for unexpected notifications when creating background RLMRealms

We now only perform a transaction when creating a realm for the first thread accessing a particular path. Subsequent threads simply take the schema from a cached realm under the assumption that it is already aligned with what is on disk (which is why we can skip the transaction). We currently still need to iterate through all object types to get table instances specific for each thread.

@tgoyne @jpsim @kspangsege