Jeff: Server read/write timeouts

+ client implementation allowing automatic tests.

This branch changes the interface of the library in straightforward but incompatible ways.