Add move protocol documentation
Make client work with the server.

Note that the protocol documentation earlier was incorrect.
Improve logging and comments
Remove duplicate class and consolidate comment.
Improve and refactor text_client