[addonversion] add tests
[addonversion] don't set revision to 0 if not present, set empty
[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
Merge pull request #4612 from jmarshallnz/addon_version_cleanup

Addon version cleanup