fix(ngClick) make ngClick to properly handle tocuh events in few cases

changes:
    1. in onTouchStart, only reset tapping to false if the it has moved outside the MOVE_TOLERANCE
    2. abstract repeated code into a function
    3. add tests for different touch scenarios

Closes: #3198