Support multi-client and project switching.

Projects must now be connected to before a build can run. Connections are
retained on the server side until all clients have disconnected. If
multiple clients are connected to a specific project build results will
be sent to all clients.