C++ server code

Latest master merged in. We should discuss the layout of the code.
That's fine. I'd leave a comment in there as a future reminder (instead of a FIXME probably a TODO), but I agree that for our needs, we may not need to worry that much.