Clean up string validator docs, add missing tests, and perform minor renames

In cleaning up the string validator docs, I realized that we actually missed a 
lot of tests in the original implementation. I’ve added those tests and fixed
some bugs that cropped up from them.

I also renamed TWTPatternExpressionStringValidator to TWTWildcardPatternStringValidator
and exposed the wildcardPattern property, renamed validatesCase to isCaseInsensitive,
and renamed TWTSubstringValidator to TWTSubstringStringValidator. The latter is stupid,
but it’s a subclass that users aren’t really supposed to create directly. It is also 
consistent with other naming conventions used throughout the framework.


@jnjosh Please review.