Fixes Issue 30[complete] and Fixes Issue 11[WIP] - locked clients, client-to-server server-side testing

@gideonthomas we want the timestamp to be an accurate indicator of the moment the server responds to the client, so asynchronous calls should get their own `updateLastContact()` call.