Update handling of version object

This is simplified logic for keeping track of the version object.
Previously an index into m_objects was kept up to date, this new method
just keeps a pointer (boost::optional) to the version object.  Only one
version object is supported, which on inspection seems to be the outcome
of the old method.  This was necessitated because the new IddObjectType
orders by name instead of value, thus the order is different,
alphabetical.