More refactorings and extraction into utility classes.
Fix strange glitch in main.fxml
Remember last used server in preferences.
Set a 2 second timeout on connect. Use more flexible host:port parsing.
Allow the server port to be customized on the command line.
Many updates to make switching between servers work properly:

Move persistent state into a separate Settings class. This uses plist files on OS X and the registry on Windows.

Record the last server we actually opened a channel with, then connect back to it and ask it to settle the channel before proceeding to connect to the new server.

If connect-back fails, inform the user how long they must wait until they can try using the app again and extract their money.

Make settlement properly asynchronous with a future and fix a lifecycle bug.

Misc minor cleanups and refactorings.