Refactor shared-memory serialization

Mark, I'm sorry, I haven't even compiled this yet. I managed to figure out how to fetch the changes from my Mac, where I coded them, to my Windows dev box -- but could not, at that point, figure out how to checkout the javascript branch. Consider this a code review for the moment, along with a request to avoid collisions to the affected code.

Still coming: using CefString (instead of std::string) for both sides, so we can directly point to the shared-memory buffer on the read side. Should we consider adding a JavaScriptExtenderProxy constructor overload accepting (const CefString&)? The current read code only passes the name, which is presumably short, so perhaps it's acceptable to copy that from CefString to std::string in that API.