Minor changes

- Setting `res.statusCode` in `compressed()` if the code path hasn't gone through `respond()`
- Firing DTrace probes after Client centric functions are executed
- Updated docblocks
- Fixed `hash()` by making it `Buffer` aware
- Applied code conventions where missing
- Created `encode()` to keep the code DRY
- Refactored `cache()` to accept a callback function