Add documentation for Connection

Connection is the class we will use for all communications,
sendMessage and registerMessageListener are the two methods we will be using
most frequently.
Add functionality for authenticating with CentralServer

This adds quite a lot of stuff needed for authenticating.
The public API function,  Connection.authenticate, is functional.

There were several hurdles along the way. One noteable one is that wx must be
called in it's own thread. Both wx and reactor are event loops that need their
own thread. Long story short, reactor never calls the user's callbacks; reactor
adds the callbacks to a stack which is then called by wx.

TODO:

add a timeout to connection that responds to the user after.. a sec or so
if there is no response from the server. Right now it just keeps on waiting if
the server doesn't respond.

start the central server from main.py or move it next to main.py

handle the other public connection functions

I forgot about commiting last night, my bad. This should have been broken up
into several commits.
Run Central Server from main.py

To run the server from main.py, run `python main.py server`
Fail auth request on timeout

If the authorization request takes longer than 3 seconds to get a response, just
assume it's failed.
Add host request and response functionality

Calling conneciton.hostPresentation(classname, callback) will attempt to host
a presentation for the given class calling the callback with a HostResponse
when the server has replied. (either failure or success)
Login failed feedback
Kill process if reactor running, don't raise ex on no connection

1) If reactor is still running a second after we asked it to close, just kill
the process rather than hanging for (literally) about a minute.

2) don't raise an exception if the user attempts to send a message in
CentralClient and the connection is down.. just call the callback saying that
the conneciton is down.
Merge branch 'add-networking'

only conflicts were in the docs

Conflicts:
	design/EClass-module.html
	design/EClass-pysrc.html
	design/EClass.ApprovalTracker-module.html
	design/EClass.ApprovalTracker-pysrc.html
	design/EClass.ApprovalTracker.ApprovalRating-class.html
	design/EClass.EClass-class.html
	design/EClass.Forum-module.html
	design/EClass.Forum-pysrc.html
	design/EClass.Forum.Forum-class.html
	design/EClass.Forum.Message-class.html
	design/EClass.LayerObject-module.html
	design/EClass.LayerObject-pysrc.html
	design/EClass.LayerObject.DrawingTools-class.html
	design/EClass.LayerObject.LayerObject-class.html
	design/EClass.Person-module.html
	design/EClass.Person-pysrc.html
	design/EClass.Person.Person-class.html
	design/EClass.Person.Roster-class.html
	design/EClass.Person.RosterItem-class.html
	design/EClass.Person.Student-class.html
	design/EClass.Person.StudentPermissions-class.html
	design/EClass.Presentation-module.html
	design/EClass.Presentation-pysrc.html
	design/EClass.Presentation.Layer-class.html
	design/EClass.Presentation.LayerManagerModel-class.html
	design/EClass.Presentation.PermissionLevel-class.html
	design/EClass.Presentation.Presentation-class.html
	design/EClass.View-module.html
	design/EClass.View-pysrc.html
	design/EClass.View.EClassWindow-class.html
	design/EClass.View.ForumWindow-class.html
	design/EClass.View.ImportPresentation-class.html
	design/EClass.View.InitialPrompt-class.html
	design/EClass.View.LayerManager-class.html
	design/EClass.View.LayerView-class.html
	design/EClass.View.LoginWindow-class.html
	design/EClass.View.MenuBar-class.html
	design/EClass.View.PermissionsWindow-class.html
	design/EClass.View.RosterItemPanel-class.html
	design/EClass.View.RosterWindow-class.html
	design/EClass.View.WhiteboardNav-class.html
	design/class-tree.html
	design/help.html
	design/identifier-index.html
	design/module-tree.html
	design/redirect.html