add timestamp to client calls

to prevent client-side caching from browser.
This is a hack but seems to have improved reliability of server
responses from repeated client actions
change Ui to handle slow server more gracefully

state is now updated in the callback so that it only updates when we
actually get a response.
In addition, whilst awaiting a response, the input text field is
disabled to prevent keyboard mashing