C++ server code

Latest master merged in. We should discuss the layout of the code.
I got the naming convention from boost, yes, but they are independent from boost. I use .hpp to denote a c++ specific header file that has template definitions in it (and thus pulls in an .ipp file with the actual definitions at its end).