Introduce CaseSensitivity enum class

The enum is a bit more verbose, but leads to more readable code:

str.Equals("foo", true)
// vs.
str.Equals("foo", CString::CaseSensitive)

Deprecate the old Equals() and leave out the length parameter
from the new version => use StartsWith() or StrCmp() instead.
CString::Starts/EndsWith(): allow specifying case sensitivity
Add CString::Find() with case sensitivity support
Add CString::Contains() for convenience

This is more convenient and readable than comparing Find() to npos,
which is a common task:

$ git grep "find(" | grep "npos" | wc -l
49
Merge pull request #686 from jpnurmi/string

CString improvements