Less dramatic outcome for Errno::ETIMEDOUT case.

Adjusts/replaces #61 and closes #62.

@halorgium, I believe this is a good way to handle `Errno::ETIMEDOUT` gracefully -- return how much was written, rather than causing a "crash" ... this might be flawed reasoning however, so please consider what I am saying. If it is necessary to be sure something crossed the wire, the upstream will need to check that `total_written` is valid. But for those who don't care about the outcome per se, there is no exception raised to take out an actor.