Adding middleware support

- Connect/Express compatible  API, aka `use()` which executes via `run()`
- Middleware 'fork' avoids the majority of turtle.io code unless the response is not terminated by middleware
- Fixes #268 
- Fixing `headers()` by removing some when sending a 500+ status code
- Fixing `respond()` when generating an etag on a `null`/`undefined` response body
- Added `access-control-expose-headers` as a default header exposing `allow` & `content-length` for CORS