remove connection from datum

This gives the middlewares better access to the connection, as well as utility methods they may want to use.

I'd like to get rid of `datum[:stack]` as well, but currently this would have to be stored in a thread-local variable, and each request's stack would need to be keyed on something. I'd really like to see a Request class instance replace `datum`. That would solve this and really help with some other issues as well. It may be possible to subclass Hash for this and simply re-organize the existing code - at least to start with.