add dual listener when on a touch-enabled browser
build event-touch
Merge branch 'dev-3.x' into dual-listener
Merge branch 'dev-3.x' into dual-listener

Conflicts:
	build/event-touch/event-touch-coverage.js
event-tap now has preventDefault(), works on Android 4.0.x and on mouse/touch enabled devices.

event-tap got a bunch of modifications in this commit:
- Dual listener support! Listens to "touchstart mousedown", and based on which one is captured, sets up listeners for either "touchmove", "touchend", "touchcancel", OR the equivalent mouse events. Now, touch events obviously fire a corresponding mouse event, and I didn't want to have a heavy-handed event.preventDefault() in the code. To prevent the corresponding mouse/click events from firing `touchEnd()`, I set up a `needToCancel` boolean that is toggled once the first `touchstart/mousedown` is captured.

- e.preventDefault() works!  You can now do this:
```
    node.on('tap', function (e) {
      e.preventDefault();
      //do some stuff here...
    });
```
update unit tests to work with commit 9cbc2f6
add manual tap test
Modified new test to be a less complex (sets content to something shorter than the total widget height), while still testing the new fix
Merge branch 'dev-3.x' into dual-listener
Merge branch 'dev-3.x' into dual-listener
Add support for mapping route params to regexps for processing

It's desirable to both use string-based routes with named params, e.g.,
`"/posts/:id"`, and assign some processing to route param values, e.g.,
`id` should be a number.

This adds a feature to Router to support mapping named params to regular
expressions. See the following example:

    var router = new Y.Router({
        params: {id: /^\d+$/}
    });

    router.route('/posts/:id', function (req) {
        // This route will only be executed when `id` is a number.
        // `req.params.id` is the result object/captures array from
        // `exec()`-ing the regular expression.
        Y.log('Show post: ' req.params.id[0]);
    });

    router.save('/posts/1'); // => "Show post: 1"

    // This won't log anything because `id` is not a number.
    router.save('/posts/asdf');
code cleanup

- change touchevent check to use event.touches
- add config option for controlling how much `px` movement is
necessary to prevent `tap` from firing
Move mod. to `notifier.prototype.fire()` upstream

Remove the `notifier.prototype.fire()` modification
made in `tap.js` and move it up to `synthetic.js`.

`fire()` now has support for `stoppedFn()` and
`preventedFn()`. Check this gist for details:
https://gist.github.com/lsmith/5986637

Check this thread for background:
https://github.com/yui/yui3/pull/986#discussion_r5151082
Add support for also mapping route params to functions for processing

Now both regexps and functions are supported for route param formatting
and validation.
fix `filter` arg. not coming through for delegate()
add test coverage for sensitivity param
update manual test with delegate() use-case
s/extras/extra and return object from processArgs()
add sensitivity use-case
add tests for `preventedFn` and `stoppedFn`