[WebSocket] Remove wrong ASSERTs on m_suspend.

- MainThreadWebSocketChannel::fail() shouldn't have ASSERT. It can be called
  from didOpenSocketStream, didReceiveSocketStreamData and didFail and
  processOutgoingFrameQueue(). These methods can be called while in suspended
  state.
- m_suspended check in didCloseSocketStream should be removed. Now
  WebCore::WebSocket has suspendable event queue. So it's safe to call
  client->didClose(). So we should rather call it than dropping it.
- Factor out while loop used to repeat processBuffer.

BUG=none

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

git-svn-id: svn://svn.chromium.org/blink/trunk@160930 bbb929c8-8fbe-4397-9dbb-9b2b20218538