cpp: bioformats: Add MetadataMap class for original metadata
cpp: bioformats: Move MetadataMap ostream operators into std namespace

Needed by gtest for clang++ on MacOS X which doesn't appear to support
ADL properly like GCC on Linux.  We need to override the boost::variant
ostream for our type or else gtest tries to use it and then it fails
horribly.
cpp: test: Fix compiler warnings and errors for metadatamap
cpp: metadatamap test no longer requires pair stream operator

Older versions of the C++ standard library and/or boost::variant do not
support iterator stream operators, making the gtest equality assertions
fail to compile.  Switch to use simple assertions without this
requirement.
cmake: Provide GNUInstallDirs directly

While this is provided by recent cmake versions, older 2.8 releases
do not provide it.  Include directly to allow use of any 2.8
version.
cpp: Add compat header for variant

In order to work around Boost.Variant and Boost.MPL type list size
limits in earlier versions of Boost, add functional cmake check and
manually increase the limits if using a buggy version.  This fixes
the travis build.
cpp: cmake: Correct BoostChecks Variant/MPL check comment
Merge pull request #945 from rleigh-dundee/cpp-metadatamap

cpp: bioformats: Add MetadataMap class for original metadata