[addonversion] cleanup to use std::string rather than malloc/free/strdup
[addonversion] have empty() use the internal members rather than m_originalVersion
[addonversion] drop Print()
[addonversion] adds asString() to return the reconstructed version string
[addonversion] drop .c_str() in favour of .asString().c_str()
[addonversion] drop unneeded m_originalVersion member