Add `@todo observable` documentation for observable properties

This PR adds documentation for observable properties, which will then be pulled into the docs correctly once #1180 is merged.  This is a first pass based on searching for definition of observable properties being defined as enums after lines ending with `Property = {`.  If there are observable properties implemented that don't follow this pattern then they are not included.

I've added simple descriptions based on what I know or could easily figure out, there may be some properties (like preload) that are not correctly described.

I've also added `readonly` annotations where I knew that a property was readonly.  I may have missed some readonly properties.

ol.layer.Base has a bunch of properties but I don't think it is exported so the documentation of these properties will not show up, so I added the documentation to ol.layer.Layer instead even though this isn't really where it should be documented.
Proper map extent for GetFeatureInfo request

Note that with and without this change, the pixel provided to the ol.source.wms.getFeatureInfo function will be wrong if the view has non-zero rotation.
Tests for the image wms source
Add insertFirst option in ol.OverlayOptions typedef
Insert or append overlay based on insertFirst option

This is to fix z-index issues with overlays that pass above ol3 default
controls.
Fix overlay z-index issue in popup example
Fix overlay z-index issue in overlay example
Set z-index: auto so that popup is not above controls
Improve doc for stopEvent and insertFirst options
Overlay stopEvent and insertFirst default to true
Merge pull request #1122 from bbinet/fix-zindex-issues

Fix overlay zindex issues
Handle dragend after resetting view hint and dragging flag

When we start dragging, we first handle dragstart and then set
the INTERACTING view hint and the dragging flag. To end dragging
in a symmetric manner, we have to first reset the INTERACTING
hint and dragging flag, and then handle dragend.

This flaw becomes obvious when using an interaction where no
animation is performed after the interaction. This can be seen
in the style-rules example when using the dragzoom interaction
(i.e. zoom using a drag box): the vector renderer will not
render the new resolution, because the INTERACTING view hint is
still set when the zoom box dragend is handled.
Merge pull request #1197 from ahocevar/handledragend

Handle dragend after resetting view hint and dragging flag
Rename ol.interaction.condition to ol.events.condition
Merge pull request #1140 from fredj/rename_interaction_condition

Rename ol.interaction.condition
Emulated click events on mouse devices

The map already emits emulated `click` and `dblclick` events on touch and pointer devices. With this commit the map emits emulated `click` and `dblclick` events on mouse devices as well.
Emulate click events only on mouse "action"

`click` events are fired only if the mouse action button is pressed. This prevents `click` events from being fired when the middle mouse button is used.

Also, without this commit, in Chrome with emulated touch events enabled, double-clicking the map doesn't zoom the map. This is because `ol.BrowserFeature.HAS_TOUCH` is `false` in that environment. The commit fixes it by testing `isMouseActionButton` on mouse devices only.
Remove unused ol.MapBrowserEventHandler#relayEvent_ func
Remove mousedown listener on first touchstart
Add tests for emulated clicks