websocket_demo: Rework the client update timer mechanism

Commit 19a620c ("Make the information update frequency a per client
property") introduced per client update timers. This allowed each client
to set how often it wanted to get the information.

This was done by storing the required update frequency 'update_freq' and
the number of seconds left until the next update 'time_rem' in the
clients client_state strcuture. A timer was set at 1 second intervals
where then time_rem would be decremented and if it hit 0 the
information would be sent to the client, then reset back to update_freq.

This worked fine, however it is perhaps not the _correct_ way to do it.
What we do now is create a POSIX timer per client.

We use timerfd_create(2) to create the timer, this returns a file
descriptor that can then be monitored by epoll(7) along the with the
socket connections.

One of these is created per client and the file descriptor is stored in
the clients client_state structure.

I think this will be more scaleable than the previous method, it does
make the code a little simpler at the least.

This also means that when there are no clients there is no timer firing.

Signed-off-by: Andrew Clayton <andrew@digital-domain.net>
websocket_demo: Allow to disable updates

Allow to select 0 in the 'spinner' this causes the timer to be disarmed.
Increasing it again rearms the timer.

Signed-off-by: Andrew Clayton <andrew@digital-domain.net>
websocket_demo.html: Tidy up the Javascript

Signed-off-by: Andrew Clayton <andrew@digital-domain.net>