Allowing using extension different than engine's shortname

Handling the case where you want to specify a default extension which is not the name of the engine.

Issue:

    app.use(views('./views','underscore');

forces you to have template named `./views/name.underscore`

I would love to be able to do something like this

    app.use(views('./views','underscore',{ext:"html", map: { html: 'underscore' } }));

but the extension gets overwritten.

Let me know if I'm missing something.