Return GenericFailure for failed connection

I wanted to handle this in the __connectCentral method, but it's not possible
without storing a reference to the callback somewhere. That degrades rapidly
if the user, let's say preses submit twice quickly.

Return a GenericFailure to the user with a conneciton failed method if
connecting to the central server failed.
For every send in User_ClientOf_CentralServer, assume a timeout

If the user ever sends a message to the central server, there's a response
associated with it. (at least thus far) Other connections will be different.
Complete student-central server process in join

This is the beginning of join-presentation. First the student requests to join a
presentation. The central server validates the request and responds to the
student. That is the summary of what this commit does.

Next up: the central server responded with connection info for the student
to connect to the presenter.. connect to the presenter now.
Added Join Presentation GUI
Updated Join
Connect to presenter

Once the central server has responded to the student with the presenter's
ip and port, connect to it.
Next: join the presentation (authenticating with presenter).
Move verify field-type methods to BaseConnection

The verify field-type methods are used to verify that received data is of the
correct type. Move it to the BaseConneciton that way the presenter server can
use it.
Complete join presentation (between student and presenter)

The last phase of join presentation is now complete.

The student joins the presenter and the presenter checks with the central server
to verify that the student may join.
Fix import to be case-sensitive in drawingtools
Remove join from menubar

For the time being, this isn't where we want it. Eventually it will go here.
Make Host- and Join-Presentation dialogs appear after login

Directly after logging in, the user is greeted with the dialogs to chose the
classes to host/join.

These dialogs need to be updated a bit further.
Made calls to hostPresentation and joinPresentation

Calls are being made but I am getting a 'Connection' object has no
attribute _Connection_settings error
Function calls now work. Host launches an EClass But the response object in Join fails.
Finish up UI for hosting and joining

Display failure reason in static label if failed.
Display all class properties in Join presentation listCtrl.
Fix logic error in connections where failure and success were swapped.
Verify presenter isn't logged in elsewhere hosting same class

Add a new verificaiton step in receive_host that verifies that the presenter
isn't hosting the presentation from somewhere else.
Fix: on conneciton close, stop hosting presentation

Now the server doesn't have to be restarted every time a presentation needs to
be hosted.

If the presenter's conneciton closes and he was hosting a presentation,
stop hosting that presentation.
Add callback for when student leaves presentation
Merge branch 'host-presentation'