Return an empty observable rather than null if local image is absent

This would not be a problem given the fact that we will always reference
existing local images, but returning an empty observable is more
consistent with the existing behaviour.

Part of implementation of #3438.