Add socket reconnections and status widget

 - Display a spinner if the socket is lost
 - Try to reconnect, but time out after 10 seconds
 - Re-fetch data and re-connect rooms on socket re-connection