Platform gesture

Provide gestures interfaces for both iOS and android.

Gesture recognition is implemented explicitly on individual platform, handled in the core by normalizing the gesture inputs from both the platforms.

This implementation provides naive handling from default gestures.

Some of the main TODOs include: 
a. Handling of continuous zoom
b. Account for zoom levels when panning.
Why are we normalizing the input velocity? And how are we determining the displacement from just the velocity? Does this assume a fixed time-step?