Set image state to loaded instead of waiting for it to load

This is necessary because some recent Chrome optimizations seem to defer
loading of images that are not visible on the viewport until JS execution
gets idle, which does not happen while executing tests.
Simplified logic for detecting cached tiles on a backbuffer

We no longer need to bail out when the img parent is the current
backbuffer. That was added to fix #980, but the real fix for #980 is to not
manage the tile cache in addLayer when a tile has an imgDiv already. In
addition, it is not needed to manage the tile cache in removeLayer.
Do not go through the tile load cycle if not needed

When a tile has no url yet and no existing imgDiv, we can immediately
return from initImage because there is nothing to do. Without this, Chrome
seems to get confused by adding an image without src, which is removed
later.