Feature/websockets

Two-way communication pretty much works now (document loading/saving is not implemented but it won't be that hard), so I think we should merge this so I can integrate it with Edric's work.