Fix trait bounds, etc.

This adds a couple of changes for the latest version of `rust`
(For reference I'm using: `rustc 0.12.0-pre (5c3987985 2014-09-08 11:56:12 +0000)`)

1. Add lifetime bounds for trait objects
2. Use `time::duration::Duration` instead of integers to represent timeout lengths.
3. Fix the ordering of parameters for `splitn(...)`