use asynchronous sending + immediate waiting.

The synchronous send methods ('sendString', 'sendBytes') only allow for
one pending message at any time - meaning that sending of a message
before the previous one is processed will fail with an exception [1].

This effectively makes the websocket only usable by one thread as
concurrent operations have a certain likelyhood to fail (depending on
send frequency).

[1] http://git.io/Ja3iFg
Merge pull request #5 from stylefruits/feature/ys/async-send

use asynchronous sending + immediate waiting.