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.
Vector events include features and extents. In the case of feature change events, the extents array will include old and new extents for features with modified geometries.w
The goog.events.EventType.CHANGE type is already dispatched because layers are ol.Object instances. To allow people to register for vector layer specific events without also having listeners get called with more general ol.Object change events, we need to give the types unique values.
With symbolizer literals now being geometry type specific, we no
longer need the overhead to query the RTree separately for each
geometry type and render symbolizer groups by geometry type.
The geometry type index of the FeatureCache is no longer needed.
The filtering functionality of the FeatureCache's
getFeaturesObject method can be removed because it is no longer
used.
This way all styles can be defined on the source layer, by
defining a rule with a select renderIntent. It also will make
addition and removal of layers easier while the select control
is active.