Provide a `main` function to start the server and register it using RMI.
Wrap `Login` in an interface.

Renamed to ServerLogin; the interface is called Login.
Created a CLI that will log in.
The client should not be able to tell the server to shut down.

Also:
  - Handle notify/wait properly.
  - Construct the thread with a runnable, not by overriding `run`.
Reimplement the `read` test function to only consume as many bytes as it needs.
CLI will publish a message.
Make it possible to quit.
Do remote registration properly.
Pull out the MessageListRenderer used for testing purposes.
Fix compilation that had previously broken due to not throwing RemoteException everywhere.
Shows a user's timeline.
Regress CompositeMessageListener to a set of MessageListeners for demo purposes.
Prompt over and over again.
Fail early if `read` is used instead of `readLine`.
Standardise on a set of MessageListeners.