One person may now leave and rejoin and collabedit will still work.

Collabedit now always starts by sending the shadow from one person to the other. This case on a rejoin the saved shadow will be sent to the new user.
Is there a reason these are static methods? They're never actually called outside of a collabedit instance, and actually operate on stateful information (sockets for a particular interview)