C++ server code

Latest master merged in. We should discuss the layout of the code.
Adding an extra colon is bad. But the comma separated list could be put in multiple lines. Effectively, the initializer list goes from the opening `:` to the opening `{` . If the list inside is properly formatted (`mVariable(something), mVariable2(something), ...` ), the list itself can span a hard drive of white space, and it would be fine.

```c++
foobar::foobar()
:mVar1(1), mVar2(2), mVar(3)
{}
```
Is equal to:
```c++
foobar::foobar()
:
    mVar1(1),
    mVar2(2),
    mVar(3)
{}
```