string_ref helper class encapsulates a char* and length without ownership.

This is really helpful for passing string arguments to functions that
need to examine the contents of a string but do not themselves need to
own it.  You can uniformly pass any of char* or std::string or a string
array.  it will do so without allocation or copying.

This is very similar to the string_ref that has been proposed by the
C++0y standard (but for which we can't count on uniformly available
compiler support for many years).