cooja TimeLine: refactor zoom infrastructure

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>
cooja TimeLine: zoom keystroke failure

The + typed character can only be generated on English keyboards by
shift-equals, resulting in a failure to recognize ctrl-plus because of
the unexpected shift modifier.  Adapt by supporting English and Spanish
keyboards, as well as number pad keys.

Closes pabigot/contikix#2

Reference: http://forums.oracle.com/thread/1356291
Signed-off-by: Peter A. Bigot <pab@pabigot.com>
cooja TimeLine: support mouse wheel zoom

Add listener that zooms based on mouse wheel.  The zoom center is the
mouse position, which alleviates the pressure to touch pabigot/contikix#4.

Closes pabigot/contikix#5

Signed-off-by: Peter A. Bigot <pab@pabigot.com>
Merge pull request #271 from pabigot/push/cooja-zoom

Push/cooja zoom
Merge remote-tracking branch 'upstream/master'