Server/Client improvements

Split the establish command in separate "join quorum" and "establish quorum" commands. Allow the user, in both the server and client, to specify the bootstrap address. This allows for connections between separate computers on any port, instead of just localhost on 9988.

I also fixed a number of minor bugs, such as connections not being closed and functions not returning when they should.

The CLIs still need a lot of work from a UX perspective. Even basic stuff like managing stdin buffering is broken (try entering a full sentence at the prompt and see what happens). This really ought to be cleaned up.