C++ server code

Latest master merged in. We should discuss the layout of the code.
Initializations lists aren't only used to pass variables to parent class constructors, although that's where that happens. As its name implies, its responsibility is for initializing variables in a class. The list aspect comes about via comma, where the initialization list is a comma-separated list. Every value that is comma separated should be a variable of the class that is being assigned something. In this case, `mTitle` is begin assigned `aTitle` and `mDescription` is being assigned `aDescription`.