renamed wait to reconnect_attempts_period because it is the period at which the client side will attempt to reconnect with the server
refactored reconnection attempts into reconnect method
took out some TODOs I am about to do, and one I already did, and fixed some whitespace
record the updates we send to the server with a message id. when the server processed that message, it sends us back that message id. if we have sent messages to the server and not yet heard back that the server has processed those messages, then we know the data from the server is slightly out of date. so, we take the data from the server, update it using our recorded updates associated with the not-yet-processed messages, and then send THAT data to the controller.
working on it
Revert "working on it"

This reverts commit 58ab9894c85a64aaae86e73012a1b2f637767635.