I'm anticipating something like this:

```
   Timeout timeout = new Timeout();
   ...
   source.read(buffer, 100, timeout.set(5, SECONDS);
   source.read(buffer, 200, timeout.set(5, SECONDS);
```

Though this example makes it clear that my timeout class doesn't work very well. The problem is that you don't get a 5 second timeout that you can reuse for multiple calls. Instead you get a 5 second _deadline_ from the start of the first call, and another 5 second deadline on the 2nd call.

I'm going to need to rework that. Perhaps I just rename Timeout to Deadline.