Added an auth solution for websockets

Until we figure out how to intercept the HTTP get request that is upgraded into a websocket, we will be using a token-based system to indicate that a websocket can be trusted. Anyone can open a websocket with the server with this approach, but only authenticated users will be able to get a token allowing them to use it.
This is a lot of code you have to write over and over.  Consider a convenience:

```javascript
// Create a new Response/ACK SyncMessage as a JSON string
ws.send(SyncMessage.Response(SyncMessage.ACK));

// or even...provide pre-created versions
ws.send(SyncMessage.Response.ACK);
```
Know what I mean?