removed the returns as other providers didnt have them and core doesnt define a return type.
now implemented the same as ol2 for control adding/removing
check controls are on the map before removing them and that they arent on the map before adding them
renamed addAControl to addControl and removeAControl to removeControl at @vicchi's suggextion
moved initialsation of this.controls array to core as it was repeated in every providers init