New "Mouse/Trackpad" Untouch event for trackpads (OSX only for now)
New math function: negate_v2_int()
View3D: Walk Navigation - initial support for Unreal Engine modes and keymap

Implemented:
* Mouse is reset back to its original location after the operation exits
* New Mouse Modes (see below)
* Trackpad support
* (keymap to enter and exit the walk navigation for the different mouse
   modes)

Mouse Modes (wip):
* RMB + Drag : fully working
* LMB + Drag : rotation working, needs to move forward
* MMB + Drag : needs to move everywhere

(note, WASD work when using the mouse modes as well, just like in Unreal
Engine)

Not implemented yet:
* Direct (non-modal) keys: (arrow keys + PLUSPAD + MINUSPAD)

* G: game mode (equivalent of the 'show as render' option), GKEY may
  be hardcoded in some places, so we may have to map it to something
  else, but at least it will be nice to create an operator to toggle the
  'show as render' option + the GLSL mode or something similar.

* Non-OSX support to UNTOUCH mouse/trackpad event

* Bugfix for mouse event still being called after UNTOUCH is detected
  (this makes the operator to be called again if we swipe the mousepad
  too fast and untouch quickly).

* F: Focus funcionality: Teleport to selected object

* All the other keys: I'm still not sure if we should try to map all the
  Unreal Engine keyboard or only the basic navigation shortcuts

  The main keys/functionality that need to be decided to be
  implemented/included are:

  * Z/C Change camera zoom (field of view)
  * F11 to set fullscreen (the new editor fullscreen)
  * Ctrl (or Cmd) + 1, 2, 3, ..., 0 to store the current view
  * 1, 2, 3, ..., 0 to restore a saved view

All viewport controls in Unreal Engine:
https://docs.unrealengine.com/latest/INT/Engine/UI/LevelEditor/Viewports/ViewportControls/index.html