cpp: ome-xml: Add ModelException

The Java implementation throws a RuntimeException, which was being
mapped to a C++ std::runtime_error.  This adds a ModelException
class derived from std::runtime_error so it's possible to distinguish
model errors from other generic errors.
xsd-fu: cpp: Make model object arguments more specific
xsd-fu: cpp: Remove todo items

These are items which are either not valid or are not doable.
xsd-fu: cpp: Remove additional todo items
cpp: ome-xml: OMEModelObject compare_element is strictly const
cpp: test: Add FormatReader testcase