Should unshift() from sendQueue and not pop()

Motivation:
Currently we are using an array as a queue. We push tasks that are to be
sent to the server when offline. When we are online we go through and
send each one in the order added. The problem is that we are using pop
which removes and element from the end of the array. We want to remove
from the from and should use the shift().
Verifying the order of edits on the server and client.

Motivation:
Currently the order of edits is not preserved and the leads to
inconsistent behaviour.
Appending edits to the patch message.

Motivation:
Currently, if multiple edits are done offline they are later sent one by
one, even for the same document/client combination. We should instead
append the edits produced to the queued up patch message and send on
message to the server.
Adding docs.
Minor code clean up.
Removing unused imports.
Moved Sync.Engine into Sync.Client.
Fixing the patched log statement to display the patched shadow.
Fixing the url to the demo.
Fixing failing test due to previous refactoring of client.