No map in renderers

This builds on #542. It makes the map renderers even more stupid.

In short:

* Map renderers no longer know about the map, they are *entirely* driven by calls to `renderFrame` with an `ol.FrameState`.
* When they need to communicate with the map to trigger a re-render, they do so by dispatching events rather than invoking the map methods `render()` and `requestRenderFrame()`.
* A new event type `ol.renderer.Event`, includes an `immediate` flag. When `immediate` is truthy then the map should be updated immediately (e.g. for major user-driven changes like adding or removing layers). When `immediate` is falsey then the map may defer re-rendering in the anticipation of further similar events (e.g. for tile and image loading).
* With these changes, the renderers are completely decoupled from the map,