Initial C++ implementation

Note: this is not yet complete. New PR opened based on a new branch with squashed history.  It includes:

- xsd-fu templates for C++
- C++ implementation in top-level `cpp` directory:
  - `cmake` build infrastructure
  - portability headers in `cpp/src/ome/compat`
  - xerces wrappers in `cpp/src/ome/xerces`
  - `ome-xml` static sources in `cpp/src/ome/xml`
  - `bio-formats` static sources in `cpp/ome/bioformats`
  - tests in `cpp/test`

TODO:

- Use `gtest` for tests
- Complete `ome-xml` model code; it's mostly complete but missing a few bits
- Complete `MetadataStore`/`MetadataRetrieve` and related template conversion; needs the model code fully functional first
- Add the basic `scifio`/`bioformats` interfaces equivalent to the Java implementation

To test

```
cd cpp
mkdir build
cd build
cmake ..
make
make test
```

`cmake` will run `xsd-fu` to generate all sources and set up a `Makefile` to build.  C++11 features such as `<memory>` will be used if present, or else Boost will be used to provide equivalent fallbacks if using an older compiler.