The header file here provides a C++14-compatible implementation of
std::optional as nonstd::optional.

This implementation is nearly identical to the reference
implementation at commit a08fda6c674ae4c9f of
https://github.com/martinmoene/optional-lite.git.

There is no Doxygen for this code, but it is intended to conform to
that of std::optional, so look in the usual C++17 documentation for
std::optional for that.

This will be removed when GROMACS requires C++17, which has a
standardized version of std::optional.

Some minor fixes were required for portability, which are described in
comments containing "GMX".
