Make assign/length/find/compare for std::char_traits constexpr.
This makes using string_views at compile time easier.
Use the compiler intrinsics when available.
Note that __builtin_memchr is not really appropriate, since it returns a void *.
Sadly, this turns a bunch of code into "a twisty little maze of ifdefs, all different", but oh well.
We can add another builtin to Clang to support this case if you'd like. (There's also a way to get __builtin_memchr to work here using a __builtin_constant_p conditional expression to enable constant folding -- http://melpon.org/wandbox/permlink/0ob1n4a3zv1Kt3Ds -- but from discussion on IRC it sounds like Marshall is not happy about that approach.)