Upgrade Grunt to 0.4.1 and fix some issues

1. Upgraded grunt to 0.4.1 and using official grunt-contrib modules instead. (run `npm install`, you might also need to `npm install -g grunt-cli`)

2. Fixed Issue https://github.com/borismus/pointer.js/issues/11 `getPointerList()` not returning pointers when event is bubbled, and added unit test.

3. Fixed `gesturedoubletap` firing too soon when tapping successively (3 taps will trigger doubletap twice)

4. Added `gesturetap`

5. Fixed issue: `mouseout` should not trigger `pointerup` if `event.toElement` or `event.fromElement` is a child of `event.currentTarget`.