Makes hammer event's srcEvent equal to currently handled DOM event

Prior to this change, the `srcEvent` included in dispatched hammer events was the last event that had touches. As such, events triggered on touchend (such as tap) would have a `touchstart` event as their srcEvent.  This is problematic because the `touchstart` event has been long-ago propagated and handled by the browser so calling `event.gesture.preventDefault()` or other methods affecting the srcEvent have zero effect.

This change continues to use previous events for touch locations in the case that the current event doesn't have any but it otherwise uses the **current** DOM event (e.g. touchend) as the srcEvent. The result is that calling `event.gesture.preventDefault()` will actually allow the source event to be prevented.

This addresses #237 since it allows preventDefault to be called on the actual `touchend` event.  Calling `preventDefault` on the touchend event causes the `click` event not to be generated (at least on iOS, haven't tested Android).  As a result, an easy method for preventing those extra clicks on tap is:

```
$element.on('tap', function(evt) {
  // ... do something with the tap
  evt.gesture.preventDefault();
});
```