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).
use string_ref where helpful in Strutil and ustring.
use string_ref for filesystem
string_ref amendment: c_str() method that returns 0-terminated
string_ref amendments to ustring construction
string_ref/Strutil amendment
string_ref amendments to filesystem