prevent duplicate objects in the catalog

This manually does what `setIdentifier:` would do, with the exception of adding the object to `objectDictionary`.

When objects were read from the disk cache on startup, an object would appear once in the catalog for every time it appeared in one of the indexes. When scanning from the entry (instead of reading from the cache) duplicates did not appear.

fixes #1459