Add missing goog.events.EventType.DBLCLICK argument to unlisten
Remove event listener with goog.events.unlistenByKey
Don't remove event listener for this.handleUp_ twice.

The listener key is in this.dragListenerKeys_
Remove event listener with goog.events.unlistenByKey
Do not draw image if image is null
Merge pull request #161 from elemoine/nullimage

Do not draw image if image is null
Merge pull request #160 from fredj/dblclick-unlisten

Remove event listener cleanups
add info about install Jasmine and the precommit hook from build.py
Always dispatch change events on load/opacity/visible changes
Promote dispatchChangeEvent from ol.renderer.webgl.Layer to ol.renderer.Layer
Promote handleLayerRendererChange from ol.renderer.webgl.Map to ol.renderer.Map
Promote renderFrame from ol.renderer.*.LayerRender to ol.renderer.LayerRenderer
Change a comma to a semi-colon (thanks @bbinet)
Merge pull request #166 from elemoine/extracomma

Change a comma to a semi-colon (thanks @bbinet)
Merge pull request #162 from twpayne/canvas-visibility-and-opacity

Canvas visibility and opacity
Remove duplicate CSS rule
Make attribution control unselectable