cpp: Add FormatWriter
cpp: FormatReader: Drop metadata being string only comment
cpp: FormatWriter: Drop unnecessary FileGroupOption copied from FormatReader
cpp: FormatWriter: Drop BitsPerPixel and Interleaved

These are now in the data model and unnecessary to have as writer methods.
cpp: FormatReader: Fix typo in get16BitLookupTable
cpp: FormatWriter: Add set*LookupTable

This allows setting of LUTs in the absence of the Java
ColorModel API used by the Java implementation.
cpp: FormatWriter: Frame rate is unsigned
cpp: FormatWriter: Minor interface cleanups

- Use boost::optional in the same way as FormatReader
- Use set for unordered collections
- Remove getUnderlyingWriters
cpp: ome-xml: Add default construction of constrained numeric types

Required for the OME-XML model objects to default-construct
PositiveInteger, PositiveFloat etc. members.
cpp: test: Correct formatreader isThisType test
xsd-fu: C++ model objects use shared_from_this

Constructing new shared_ptrs from the this pointer is not
a good plan.
cpp: Add MetadataTools createID
cpp: Add FormatWriter implementation
cpp: FormatWriter: MetadataRetrieve must be set before setId
cpp: FormatWriter: Correct setId behaviour
cpp: FormatWriter: Clear initialised planes on close
cpp: Correct pre-C++11 trigraphs
cpp: test: gtest/clang formatwriter fixes
cpp: test: Correct uninitialised variable warning for some compilers
Merge pull request #1331 from rleigh-dundee/cpp-formatwriter

C++: Add FormatWriter interface