Uses bunyan for object serialization

Passing in the log fields directly lets us take advantage of bunyan's
built-in filtering. We can now write things like:

    node --harmony app.js | bunyan -c 'this.status != 200'
Uses Date.now() for timestamps
Uses `yield` for response logging