Isomorphic router

Goal is to have a router that can be run the client and server so we can start building isomorphic applications (#13). You need to be able to

* Define routes (regex/string) and what element should be rendered
* Call the dispatcher when the router starts, before the router is about to change and after the route has changed
* Have an action creator for navigating to routes

```
var Router = Marty.createRouter({
   '/some/:example': {
      handler: Something,
      name: Constants.Something
   } 
});

var RoutesStore = Router.Store;

var route = RoutesStore.getCurrentRoute(); // { route: '/some/:example', handler: Something, name: 'something', instance: .. }

var NavigationActionCreators = Router.NavigationActionCreators;

NavigationActionCreators.navigateTo(Constants.Something);
```