initial commit
introduce asynchronous API methods

Use of the asynchronous methods allows better performance when many independent commands are to be issued in succession, as these methods are able to pipeline requests over the WebSocket connection. The synchronous variants of the methods are reimplemented in terms of the asynchronous methods but continue to function as before.

Note: Client applications should no longer call Coinfloor.pump(), as the message pump is now started automatically in Coinfloor.connect(…).
introduce callback-style asynchronous API methods

Use of these methods allows for more complex handling of out-of-order results than the Future-returning asynchronous methods, which are now reimplemented in terms of the new callback-style methods but continue to function as before.

Note: Callbacks must complete quickly and must not block or wait.