Fixes and improvements to Server, Overlay

Tidying up some loose ends.
std::string has a length, so you can't pack anything after the end of the string. With a null terminated string, you can attach a payload after the null and do fun things. I'm not saying that this is possible at all with the code as it is, but a proliferation of const char* is a hacker's best friend. It only takes an exploit on one to start putting things in the others outside of expected call sites.
https://buildsecurityin.us-cert.gov/articles/knowledge/coding-practices/c-std---string