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.
Merge pull request #1382 from tschaub/observable-geometry

Remove geometry specific event type.