
* add a new ClientWriterRunner thread (1 per I2CP connection) so that a client application that hangs or otherwise doesn't read from its i2cp socket quickly doesn't hang the whole router (since we've previously used the jobQueue for pushing I2CP messages). This may or may not clear the intermittent eepsite bug, but I'm not counting on it to (yet). * update various points to deal with the client writer's operation (aka doSend won't throw IOException) * logging * lots and lots of metrics (yeah i know some of them vary based on the compiler)