[changed] location of public modules

this puts all public modules in the root of the
package to:

- conveniently require them
- easily identify what is public v. private

for example:

```js
// instead of doing this
var Router = require('react-router');
var Link = Router.Link;

// or this
var Link = require('react-router/modules/Link');

// you can now do this
var Link = require('react-router/Link');
```

closes #154
[changed] handlers receive route name
Merge pull request #157 from rackt/send-name-to-handlers

[changed] handlers receive route name
Merge pull request #156 from rackt/public-modules

[changed] location of public modules
[added] pluggable history implementations
closes #166