OverviewMap control

This replaces both the old #822 and #2444.

The following fixes were made so far:

 - (enhancement - fixed) use map `postrender` instead of view `resolution`, `center` and `rotation` property changes, as suggested by @tonio.  The small box doesn't follow the animation of the map (i.e. while doing a pan/zoom), because the extent of the main map is always the same while animating, i.e. is equal to the end result.  More about this.
 - (bug - fixed) listen to the map view change and act accordingly, as suggested by @elemoine and @tschaub .
 - (bug - fixed) defining the control with `maximized: false` no longer works
 - (task - fixed) follow the new button structure
 - (task - fixed) add a 'collapsible' option, as the attributions control, to allow the control to be drawn without a button

What's remaining to do, which includes all comments from #822 and #2444, in my personal order of priority :

 - (enhancement, requires #2735) use map corners instead of the extent as a way to get draw the box to allow it to animate smoothly while the map is animating.
 - (task) add tests
 - (task) support dragging the box to change the main map view (it would be really nice to have this)
 - (enhancement) support rotating the box instead of overview map (this could be left undone for now)
Why storing the value min and max ratio values in the instance? Why not use the constants in the code?