Maintain file buffer in server and update it incrementally

so when the user types in vim, the server doesn't have to request the whole
file, since it knows what changes the user made.

also include debounce to combine near-simultaneous changes
Have the websocket server listen on the same port as the http server