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.
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.
Remove View2D typecasts in bind-input example
Remove View2D typecasts in geolocation example
Make Interaction inherit from Observable
Merge pull request #1397 from elemoine/observable

Make Interaction inherit from Observable
Merge pull request #1396 from elemoine/typecasts

Remove typecasts in examples
Remove export_as handling from generate-exports.py
Do not use export_as for animation exports
Do not use export_as controldefaults exports