Better client communication

Send queue diffs rather than entire queue

Signed-off-by: Tim Smart <tim@fostle.com>
State and position events

Signed-off-by: Tim Smart <tim@fostle.com>