Add TCP reconnect functionality

Currently, the program crashes if the back-end stops responding (for example when power-cycling the fridge). The connection is closed, but not all resources are released, creating the illusion of a running DecsVisa server.

Attempting to interact with the fridge through the ProteoxDriver will result in a VisaIOError on timeout reached.

Two potential ways forward:

  1. Implement a connection polling solution that attempts to reconnect.
  2. Properly shut down DecsVisa on a lost connection.