narrow Layer instances to concrete GWT classes

narrow Layer instances to concrete GWT classes instead of a generic Layer instance to allow directly using the returned Layer without allocating an instance of the concrete class, add getZoomOffset for XYZ layer.
remove old narrowTo* functions.
they were not static, so could not have been used without creating an instance of the class and XYZ narrowTo is superseded by the implementation in Layer, which is generic (all internal calls in OpenLayers use Layer.narrowToLayer).