Fix BufferedSocketWriter not to return any results from Write().

Previously BufferedSocketWriter was returning false from Write() if
the write fails synchronously. That's redundant because
BufferedSocketWriter also calls a callback after the failed write.

This also fixes a bug in Write() - it was using is_closed() method after
calling the callback, which is not allowed because the object may be
deleted by the callback. That problem was found by tests added in
https://codereview.chromium.org/1258323003 . The bug was introduced
recently in https://codereview.chromium.org/1197853003 .

Review URL: https://codereview.chromium.org/1250403003

Cr-Commit-Position: refs/heads/master@{#341229}
5 files changed