Contextual routers and "index pages"

I have router that handles a `/profile` route using a contextual router. For example:

Parent router:
```
<Locations>
  <Location path="/profile" handler={ProfileRouter} />
  <Location path="/profile/*" handler={ProfileRouter} />
</Locations>
```

*ProfileRouter* contextual router:
```
<Locations>
  <Location path="/" handler={ProfileIndexPage} />
  <Location path="/other" handler={ProfileOtherPage} />
</Location>
```

A request to `/profile` will cause an invariant violation because there is no `unmatchedPath` left from the parent router.

I want the *ProfileRouter* contextual router to be able to handle requests for `/profile` as if there was a sort of "index page". It should match the *ProfileRouter*'s route for `/`.

This patch defaults the `unmatchedPath` portion of the *match* object to `/` if there is no remaining match from the parent.

Ideally, I also wouldn't have to create two *Location* components in the parent router and the `/profile/*` route could also match a request for `/profile`. This behavior could be behind a flag passed to *Location*.