Add support for named routes to `index` and `directory` APIs.

When using the `index` or `directory` API, named routes are now available on `app.locals.routes`. The default router object is still supported, but an optional registration API is now available as well:

```javascript
'use strict';

module.exports = function (router) {

    // New named route API `my-route`
    router({ path: '/foo', name: 'my-route'})
        .get(function (req, res) {
            res.send('ok');
        })
        .post(function (req, res) {
            res.send('ok');
        });;

    // Original unnamed route
    router
        .get('/bar', function (req, res) {
            res.send('ok');
        })
        .post('/bar', function (req, res) {
            res.send('ok');
        });

};
```