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)`.

 * [x] add `ol.Map.prototype.addOverlay`
 * [x] add `ol.Map.prototype.removeOverlay`
 * [x] add `ol.Map.prototype.getOverlays`
 * [x] remove `map` from `ol.OverlayOptions`