C++ server code

Latest master merged in. We should discuss the layout of the code.
I'm more used to using FIXME. Also, for me a FIXME highlights that the program is failing to do something it should be doing, which in this case we aren't enforcing string conditions. But really, the answer is I default to FIXMEs.