nodejs config refactoring

Hi,

I would like to submit a pretty big pull request here. This is mainly to discuss and illustrate how I think **h5bp** nodejs config could be refactored.
**node-h5bp** (let's name it that way :) should be for nodejs what **h5bp** is for browser: a drop-in solution with state of the art best practices gathered in the same place. For beginners it could be used out of the box, for more mature users it could be a source of usefull chunks of code to pick up.

### An application
Unlike other servers supported by **h5bp**, a nodejs server is an application, so **node-h5bp** should be more than a configuration.
It should be what it is meant to be, a boilerplate for a nodejs webserver.
Here I propose, from nodejs community's best practices :
 - a **common directory structure** for a nodejs server (at least lib/ and test/)
 - a **package.json** inspired from http://package.json.nodejitsu.com, using **semver** (http://semver.org/ starting at v0.1) and starting the project at **0.1.0**.
 - a **.gitignore** from https://github.com/github/gitignore/blob/master/Node.gitignore + ignore to node_modules/
 - the most widely used **test framework** for now: mocha /w chaijs for BDD (this is my opinion :)
 - a default **test suite** with the one used to test **node-h5bp** itself, the developer can test his application and ensure that nothing breaks the default **node-h5bp** behavior.

### A middleware
**node-h5bp** should be a middleware/handler ready to use in:
 - a **connect/express** server: `app.use(h5bp())`
 - a **basic nodejs http server** (a helper exists for this chunk of code, see further):
```javascript
var h5bp = h5bp();
http.createServer(function(req, res) {
    try {
        h5bp(req, res);
    }
    catch (error) {
        res.writeHead(error.status);
        res.end(error.toString());
        return;
    }

    // your code here
});
```

### A helper `createServer` function
**node-h5bp** should also be a kind of factory to ease creating basic and functional server environement in one call:
 - create a basic **express** server: `var app = h5bp.createServer({ server: 'express' /* default*/, root: 'path/to/root' })`
 - create a basic **connect** server: `var app = h5bp.createServer({ server: 'connect', root: 'path/to/root' })`
 - create a **http** server: `var app = h5bp.createServer({ server: 'http' }, function(req, res) { /* insert code*/ })`

### A test suite
A test suite to validate that everything works fine as expected and the user don't break **node-h5bp** default behavior.

### Implementation
Basically, I've copied & pasted **.htaccess** configuration and adapted it.
The implementation provides only one middleware, not a stack of choosable ones.
Why? First performance, then **h5bp** is a set a best practices to use together.
Two use cases here:
 - beginner developper uses the full set epic without doing anything
 - mature developper just adapt, comment, modify the source as it is clear and commented (like h5bp in general)

mime types are enforced (not using node-mime) to be consistent with the .htaccess. As a side note, I think I found some incoherences in the .htaccess, we should discuss about that.
This a choice, but we could also enforce node-mime as a mandatory dependency, but some mime types differs from the **h5bp** .htaccess. Your call :)

What do you think?

PS: pardon my english, not a native writter ^^