Style consistency

Give your anonymous functions a little breathing room, guys.
[added] pluggable history implementations
closes #166
Clean up PR #169

Adds the ability to specify <Routes location={HashLocation}> instead
of just using a string. Also, use Browserify's events module instead
of event-emitter.

Also, replaces URLStore with PathStore which takes a location object
instead of using a string to identify which location it's using.
Remove Location module references
Style tweaks
Add doc comment
Use copyProperties instead of mergeProperties
[fixed] sibling array route configs

now you can configure your routes like this:

```js
var extraRoutes = [<Route/>, <Route/>];
var routes = (
  <Routes>
    <Route/>
    {extraRoutes}
    <Route/>
  </Routes>
);
```

closes #193
[changed] Transition#cancelReason => abortReason

Also, transition.abort() now accepts a reason argument that indicates
the reason for the abort. I anticipate that we'll need to add a NotFound
reason soon.
[added] onAbortedTransition, onActiveStateChange, onTransitionError Routes props

Also, removed Routes.handleAsyncError and Routes.handleCancelledTransition
Clean up test harness
[added] <DefaultRoute> component

Also, changed behavior of routes with no name, path, or children so
they act as default routes. <DefaultRoute> is essentially just sugar.

Fixes #164
Fixes #193
Fix failing specs
Merge pull request #200 from rackt/default-route

[added] <DefaultRoute> component
Style tweaks
Use mixInto
rewrote the overview guide
fix broken links in the guide
typo
removed reference to NotFoundRoute

since it doesn't exist yet!