Make ol.control.Control extends ol.Object
The map now has a collection of controls
Add 'units' property to ol.control.ScaleLine
Add addControl and removeControl methods to ol.Map
Do not call setMap(null) if control not in map
Add 'projection' and 'coordinateFormat' to ol.control.MousePosition
Meaningful variable names
Merge pull request #800 from fredj/control_object

Make ol.control.Control extends ol.Object
Add missing 'undefined' in type cast
Set default 'tracking' property to false
Merge pull request #762 from elemoine/controls

Add addControl and removeControl methods to the map
Don't attempt to display the mouse position if the frameState is null
Merge pull request #807 from fredj/mouse-position

Don't attempt to display the mouse position if the frameState is null
Merge pull request #805 from fredj/cleanup

ol.Geolocation and ol.DeviceOrientation cleanup
Only render and cache tiles that have features
Merge pull request #808 from ahocevar/no-empty-tiles

Don't render/cache tiles with no features. r=@tschaub
Do not use a fixed tile grid for vector rendering

Instead, we create a new tile grid whenever renderFrame is
called, no animation is active, and the resolution is not in the
tile grid already. This gives better rendering results because
we get vector tiles at native resolutions.
Separate method for updating the tile cache
Do not add resolutions while interacting
Use binaryInsert instead of sort