ObjectIndex: allow lazy registration of objects
AbstractSingletonService: register instances lazily

To be more precise, the objects were previously registered lazily upon
the first call to SingletonService#getInstances(). Unfortunately,
calling ObjectService#get or ObjectService#getAll before that failed to
return the singleton instances, because they had not yet even been
instantiated. To address this problem, we now register them using the
ObjectIndex's newly minted addLater feature, which lets us register a
callback to create objects only when they are needed.