Support more granularity in zoom levels

Support more granularity in zoom levels (e.g. zoomStep=0.5) that can be used, with providers that produce those levels, to have smaller changes in zoom level after a pinch operation, or a better fit with fit-to-bounds operations.