Engines accept new args

- engines must be explicitly passed a reference to filename, content,
and locals
- engines no longer directly accept request and response objects
Bundles

- render and concatenate all files inside folders with names like
“app.css” and “app.js”
- content is first concatenated and then run through the standard build
process
- inner files are not run through pre/post-commit hooks at this time
Engines can now include  pre() and post()

- pre() and post() hooks from engines are executed before user-provided
versions
Error Responses

- now sends well-formatted errors properly up the chain via middleware
- big speed improvements
- concat now avoids invalid filetypes
- add support for files with multiple dots or underscores
- ensure spaces in filenames are properly handled