Titan automatic failover

Automatically try another host if one fails.

Testing procedure:

- Tried connecting with 3 bogus hosts. Ensured three attempts were made
- Tried with one good host. Ensured it connected
- Tried shutting down and restarting Titan while a connection was open. It successfully reconnected