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.
Merge pull request #1019 from ahocevar/chrome-optimized

Deal with recent Chrome optimizations to avoid failing TileManager and tests
Typos: "colums" -> "columns", "exceess" -> "excess"
Merge pull request #1037 from kryger/master

Typos: "colums" -> "columns", "exceess" -> "excess"
change version number to 2.14-dev
Adding refresh event and making TileManager listen for it

When calling redraw(true) on a HTTPRequest layer, mergeNewParams is used to
add a url parameter with a random value. For layer types that do not use
params in the getURL function, the url does not change and the TileManager
will provide tiles from the cache. To make sure that tiles are fetched from
the server, they need to be removed from the cache first.
Clip singleTile image to maxExtent
Override getImageSize function to take clipped images into account

singleTile layers may have clipped images to not exceed the maxExtent.
Whitespace fixes
Use correct getImageSize API

Without the bounds argument, getImageSize would fail in singleTile mode.
Updating tests and adding a test to make sure that clipping works
Changed documentation of OpenLayers.Bounds.toBBOX from Significant Figures to Decimal Places as this is what the method actually does.
Renaming refresh to handleLayerRefresh
Merge pull request #402 from ahocevar/refresh

make tms.redraw() work. r=@tschaub
make sure that undefined can be used for feature.modified.attributes, this is what can happen when using Ext JS stores
update API comment
Merge pull request #1040 from bartvde/wfst

make sure that undefined can be used for feature.modified.attributes, this is what can happen when using Ext JS stores (r=@ahocevar)
ZoomBox sprite positions not defined for EditingToolbar

.olEditingToolbar class was not assigned to the olControlZoomBoxItem classes, which resulted in incorrect buttons.