Implementing new socket API methods

Adds [Server to Client][] protocol methods:

- Reverse index interrogation method (simperium sends an `index`) to the client
- Connection level `log` message

Also adding unit tests to ensure the client adheres to [the protocol][].

[the protocol]: https://gist.github.com/beaucollins/6998802
[Server to Client]: https://gist.github.com/beaucollins/6998802#server-to-client-commands