cpp: Add bioformats CoreMetadata and Modulo
cpp: Add bioformats FormatException and derived classes
cpp: Add bioformats MetadataOptions class
cpp: Add bioformats Metadata class
cpp: Add bioformats MetadataRoot interface
cpp: BaseMetadata: Add index_type typedef

This type is used for referencing all indexed properties in the
metadata store.
cpp: BaseMetadata: Add byte_array typedef

Used for passing pixel data.
cpp: xsd-fu no longer needs package specifying
xsd-fu: Generalise metadata store index signatures
xsd-fu: Add C++ metadatastore templates
xsd-fu: Refactor command-line option handling

- Add support for long options
- Allow individual package namespaces to be specified
- Language classes maintain the default and current namespace in
  use for each package
- The dry run option is now functional
- ant and maven builds use long options; maven no longer specifies
  package namespaces explicitly; ant uses them to ensure they are
  functional, but this is not required since the defaults are fine
- Unify usage messages
- Add options and subcommands to usage message
- Update documentation to include options, subcommands and usage changes
xsd-fu: Add --debug option to replace debug command
xsd-fu: Pass model, options, language and debug variables to templates
xsd-fu: Java EnumHandler template uses enum package
xsd-fu: Add debug conditionals to Java Pojo template
xsd-fu: Java templates print ignore statements in debug mode
xsd-fu: C++ templates print ignore statements in debug mode
xsd-fu: Use more pythonic boolean tests
xsd-fu: Improve dry run mode

Dry run mode now performs all the normal template processing,
except for writing output.
xsd-fu: Allow command dependency introspection

- Split verbose option into separate --print-depends and
  --print-generated options
- The --print-generated option behaves the same as the existing
  --verbose option
- The --print-depends option is similar, but rather than printing
  generated source filesnames as they are written, it outputs all
  read files (schemas, templates and template fragments) for the
  command which was run
- Both options may be used with --dry-run to introspect file usage
- Documentation updated to include these new options
- ant and maven builds use --print-generated to preserve existing
  behaviour
- cmake build uses --print-generated to preserve existing behaviour,
  but additionally uses --print-depends to generate correct build
  rules such that if any template or schema file is changed, the
  correct set of source files will be regenerated and rebuilt on
  the fly