Show an issue with ol.structs.RBush

Note that the same test passes in the original implementation.
Do not ascend when node has more siblings
Verify that removing random extent nodes also works
Geometries inherit from ol.Observable

Because ol.Observable is now a struct, we have stricter type checking (hence the extra assertions).
Remove ol.geom.GeometryEvent

This removes geometry specific change events.  Since geometries are mere observables, we only get generic change events.  To minimize changes in other places, as a workaround, we cache geometry bounds on features.  This is not the way things should be long term, but the objective is to remove the geometry specific event.
Use ol.extent.* functions in ol.source.MapGuide
Add displayDpi option to ol.source.MapGuide constructor
Add ol.source.MapGuide.getScale function
Merge pull request #1388 from fredj/mapguide-cleanup

Mapguide cleanup
Add ol.structs.RBush#getExtent
Merge pull request #1391 from twpayne/rbush-get-extent

Add ol.structs.RBush#getExtent
Truthy check is enough
Merge pull request #1373 from ahocevar/rbush-fail

ol.structs.RBush#remove() is unreliable
Add collinsBart and ordnanceSurvery styles to bing-maps example
Merge pull request #1392 from twpayne/bing-uk-maps

Add collinsBart and ordnanceSurvery styles to bing-maps example
Export DEVICE_PIXEL_RATIO and HAS_TOUCH from ol.BrowserFeature
Merge pull request #1393 from fredj/browserfeature-export

Export DEVICE_PIXEL_RATIO and HAS_TOUCH from ol.BrowserFeature
Merge pull request #1382 from tschaub/observable-geometry

Remove geometry specific event type.
Merge remote-tracking branch 'upstream/master'