* use hammerjs as event manager * support touch in main example
- `MapControl` takes a `MapState` instance instead of list of viewport props - Always return a new `MapState` object after transform - Better naming of properties and methods - Code consistency and error checking - Tests cover more use cases