Initial drop for performance optimizations.

a) Changed subscribers/afters maps to arrays.
b) Used _wlmix as used in Base, for config mixes/merges.
c) Avoid try/catch for arguments-to-array conversion.
d) Avoid new EventTarget when stoppedFn is not used.

a) and b) are probably the biggies.

Shows 3x improvement in Chrome for basic publish, on/after listener, fire sequence in
src/event-custom/tests/benchmark/event-custom-benchmark.js

BEFORE:
EventTarget with attribute style publish, fire, with on/after listeners x 7,623 ops/sec

AFTER:
EventTarget with attribute style publish, fire, with on/after listeners x 23,642 ops/sec
Build for initial event perf improvements
Merge remote-tracking branch 'upstream/master' into event-perf
API doc cleanup
Optimized mixing done on the facade, during a fire with payload.

Before we used to:

1) Mix own properties from a clean facade, into an empty object o2.
2) Mix own properties from the data payload into current event facade.
3) Mix own properties from o2, back into the current event facade.

The idea seems to be that we want the data payload to overwrite everything,
aside from the own properties present in a clean facade.

This required 3 iterations, each with hasOwnProperty checks.

Change the impl to use:

    mixFacadeProps = function(facade, payload) {
        var p;

        for (p in payload) {
            if (payload.hasOwnProperty(p) && !FACADE.hasOwnProperty(p)) {
                facade[p] = payload[p];
            }
        }
    }

Where FACADE is the "clean" facade instance we were mining keys from, in
the original impl. I believe this maintains the same behavior as the original,
unless there's something I'm missing with only one iteration, and one less hasOwn
Property check. Ideally I'd also want see if we can get rid of the
payload.hasOwnProperty(p), but wanted one commit which maintains behavior.

All custom event tests, as well as App, Widget, WidgetParentChild and DD tests
pass.

Performance results on Chrome 19/MacOS below, for the use case where we're
firing with a payload:

3.6.0pr2:
Fire With Payload - 10 listeners x 27,918 ops/sec ±1.32% (54 runs sampled)

BEFORE (with optimizations prior to this commit):
Fire With Payload - 10 listeners x 41,752 ops/sec ±1.22% (56 runs sampled)

AFTER (with this commit):
Fire With Payload - 10 listeners x 63,362 ops/sec ±0.37% (58 runs sampled)
Build for event-facade mixing optimization
Extract Y.PjaxContent form Y.Pjax.

Moved the guts of Y.Pjax into a Y.PjaxContent extension. This allows it
to be used in other places like Y.App.

Fixes #2532487
Build Pjax.
Update Pjax's change history.
Update src/node/js/node-core.js

To help those unfamiliar with the node methods destroy who might expect destroy to also remove the node from the DOM.
Memory cleanup : Fixed unused references to the last facade, left behind at the end of a fire. Event unit tests (and app, dd, widget etc.) pass on Chrome/FF/Safari
Build for memory cleanup : Fixed unused references to the last facade, left behind at the end of a fire
Add route-specific middleware to Router.

Add Express.js-like middleware to route handlers. This enables and
encourages reuse of repeated routing code.

Closes #2532620
Merge branch 'master' into event-perf
I think the code is cleaner with two separate callbacks, rather than one callback with a conditional.
Improve API docs for Router middleware.
Update GitHub Contributors example app to use route middleware.
Update App's user guide to use route `callbacks`.
Update Router's user guide to add details about route-based middleware.
Merge branch 'master' into event-perf