Add ol.MapBrowserEvent#getBrowserEvent
Add beforechange event type and provide key with change events

If you know ahead of time that you only want to listen for changes for a specific property, the foo:change type events can be useful.  If you want to listen for changes on all properties, the change event becomes more useful if it provides information on what changed.  And the beforechange event allows listeners to access values before they change.
Handle beforechange events for bound properties
Getting explicit about which type
Listen for property changes in layer group

This avoids a future bug when the ol.ObjectEventType.CHANGE value becomes something different than the goog.events.EventType.CHANGE value.
Using unique event type values for distinct events

Any event target can be used to dispatch generic goog.events.Event instances with an arbitrary type.  In cases where we dispatch custom events, we should not use type values that collide with those used for generic events (at least internally).  This allows listeners a better chance of knowing what kind of argument they will receive.

As subsequent change will clean up the enumeration and add a bit more consistency.
Make enum property name like its value

Where an enum value is used as an event type, it should be alllowercase (to follow DOM events).  Property names should be ALLUPPERCASE in this case (just as camelCase and PascalCase are converted to CONSTANT_CASE).
More consistent event types
Add gutter option to ol.source.TileWMS
Add gutter support to TileUrlFunction
Add ol.source.Tile#getGutter
Add gutter support to ol.renderer.canvas.TileLayer
 Add gutter support to ol.renderer.dom.TileLayer
Add gutter support to ol.renderer.webgl.TileLayer
Add missing "new"s in ol.structs.RBush
Merge pull request #1364 from twpayne/rbush-new-error

Add missing "new"s in ol.structs.RBush
No longer generate src/external/src/types.js
File types.js no longer an input for ol-all.js
File types.js no longer an input for ol-simple.js
File types.js no longer an input for ol-whitespace.js