Refactor common code into private functions. Abstract to support zoom
to level or exact value.
There should be no behavioral change as a result of this patch except:
* zooms are consistently filtered to be in the valid range (those from
configuration parameters formerly had been used directly);
* the correct centerTime is used for zoomOutAction when
mousePixelPositionX is positive
Supports pabigot/contikix#5
Signed-off-by: Peter A. Bigot <pab@pabigot.com>