Fix to work with new iron api

This uses the request extensions to store the start time in the request. I played around w/ implementing it as an `AroundMiddleware`, but it seems you'd always want this to be the first before and the last after, hence it's a pair of middlewares.
Can this block be formatting like:

```rust
let mut chain = ChainBuilder::new(no_op);

// Link logger_before as your first before middleware.
chain.link_before(logger_before);

// Link logger_after as your *last* after middleware.
chain.link_after(logger_after);

Iron::new(chain).listen(Ipv4Addr(127, 0, 0, 1), 3000);
```