Make ol.Overlay consistent with ol.control.Control

Instead of constructing an overlay with a `map` option, it would be more consistent with the control api to call `map.addOverlay(overlay)`.

 * [ ] add `ol.Map.prototype.addOverlay`
 * [ ] add `ol.Map.prototype.removeOverlay`
 * [ ] add `ol.Map.prototype.getOverlays`
 * [ ] remove `map` from `ol.OverlayOptions`