Allow runtime values to be included in textual explanations.

The abstract base class seec::clang_epv::RuntimeValueLookup provides the
interface required, which currently consists of only one method:
  std::string getValueString(::clang::Stmt const *Statement) const;
This method should produce a string containing or describing the current
runtime value of the given Statement, or an empty string if no runtime value
exists.

The function
  seec::clang_epv::makeRuntimeValueLookupByLambda(LambdaT &&)
will return a class that implements the RuntimeValueLookup interface by using
the provided lambda function to satisfy all calls to the getValueString()
method.

There are additional overloads for seec::clang_epv::explain(), which each accept
a const reference to a RuntimeValueLookup. The existing explain() functions are
still available, and may be used to produce explanations with no runtime values.

The X-Macro system used to generate Stmt linking information has been updated
to allow for generating value information. The macro SEEC_STMT_LINK has an
additional parameter, RTVALUES, which follows the existing ARGUMENTS parameter.
ARGUMENTS must contain a list of values of the form:
  (NAME, GETTER)
Where NAME is a C string literal, and GETTER is the method used on the Stmt
object to get the child Stmt whose value we are requesting. This will generate
either one or two additional arguments:
  "has_"NAME -> bool (if the child Stmt is non-null and has a non-empty value)
  NAME       -> string (only if "has_"NAME is "true")
The X-macro system will automatically add value information for the Stmt that
is being explained, with NAME equal to "rtv_of_this".