[#417] Returns 404 for un-handled resources

To use, add ignoredFileExtensions key to static():

```JS
app.use(static({ file: 'tmp/result/index.html', ignoredFileExtensions: /\.\w{1,5}$/ }));
```

Middleware is processed sequentially, so this should be the last call
to catch non-existent asset files. All other paths continue back to
index.html to be handled by the Ember router.

  - Adds another option, ignoredFileExtensions the static middleware
    function, which allows you to specify a regex to capture resource
    paths that should return a 404.
  - Adds a check in static() for ignoredFileExtensions key that tests
    the regex against the request path for a matching file ending.
    If matched, then it sends a 404 error and does not serve the
    index.html file.

Passes an error string to next when trapping 404s

Traps 404s for resources in dist mode as well

Refactors 404 trap to an ignored file extensions property on the index.html catchall

Refactors ignoredFileExtensions regex
Halts the middleware chain after handling 404 resources

Signed-off-by: FilmKnurd <andrew@astonishdesign.com>
Merge pull request #418 from astonishdesign/feature/404resources

[#417] Returns 404 for un-handled resources