* Write BUILD_ID when building.
It's a random id (uuid.v4())
* Add buildId to the core JS files.
* Add immutable cache-control header.
Only if the buildId is matched.
* Set '-' as the dev buildId always.
* Add buildId handling for JSON pages.
* Move route loading logic to a common place.
* Add router events.
* Add EventEmitter's core API methods.
* Add example app for loading events and docs.
* Fix some typos.
* Get rid of Router.ready()
* Remove events package.
It's already shipping with webpack.
* Handling aborting properly.
* Expose simple attribute based events listener API.
Removed the proposed event listener API from the public API.
* Remove error logged when there's an abort error.
There are many other ways to capture this error.
So, it doesn't look nice to print this always.
* Change router events to pass only the current URL as arguments.
* Add a section about Cancelled Routes to README.
* Immplement the initial singleton Router.
* Use the new SingletonRouter for HMR error handling.
* Use SingletonRouter inside the Link.
* Create an example app using the Router.
* Make the url parameter optional in Router.push and Router.replace
* Add a section about next/router in the README.