Fire a moveend event after rendering

The moveend event is fired after rendering if there is no pending animation, current interaction, or other pre-render functions in the queue.
Example using the moveend event
Lazily create default style
Add getParams/updateParams to SingleImageWMS
Allow tile cache key calculation to be overridden
Store revision number in sources and update it on changes
Don't use rendered framebuffer when source revision has changed
Handle tile source revisions in DOM tile layer renderer
Add getParams/updateParams to TiledWMS
Add getDimensions/updateDimensions to WMTS
More robust coordinate keys for WMTS and TiledWMS

This uses more robust ZXY coordinate keys, and caches the key to avoid creating garbage each time getKeyZXY is called.
Merge pull request #994 from elemoine/update-params

Allow changing parameters/dimensions for WMS and WMTS
Rename tiledwmssource.js to tilewmssource.js
Change Tiled to Tile in a comment
Merge pull request #1002 from elemoine/tilewms

Rename tiledwmssource.js to tilewmssource.js
Use ol.extent.createOrUpdate function
Rename optional param to opt_extent
Rename tiledwmssource.exports to tilewmssource.exports
Merge pull request #1004 from twpayne/tiled-wms-rename

Rename tiledwmssource.exports to tilewmssource.exports
Merge pull request #1003 from fredj/extent

Minor coding style and simplification for ol.Extent