lib/cpp: making abstract protocols less abstract
lib/cpp: allow what ::std::string to be passed up to Exception
lib/cpp: fixed up protocols, native includes