feat(ngMobile): provide mobile gesture detection capabilities

A basis for gesture detection where multiple gesture types can be applied to an element without events clashing.
Multiple gestures can also be active at the same time on different elements, allowing for complex, potentially multi-user interfaces or hilarious easter eggs.

Supports the following gestures: hold, click (tap), double click (double tap), swipe (up, down, left and right)

Easily extended to allow for additional gestures and custom directives.