Issue 189 - Add String Operators to 'Does' prefix

Deprecated `Is.StringStarting`, `Is.StringContaining`, `Is.StringEnding` and `Is.StringMatching`. Replaced them with `Does.StartWith`, `Does.Contain`, `Does.EndWith` and `Does.Match`.

Deprecated `Constains.Substring` in favor of `Does.Contain`. 

`ConstraintFactory` and `ConstraintExpression` now have a `Does` property that return this so that we can chain with syntax like `And.Does.Contain`. In both these classes, deprecated `StringContaining`, `ContainsSubstring`, `DoesNotContain`, `StringStarting`, `StringEnding`, `DoesStartWith`, `DoesEndWith`, `StringMatching` and `DoesNotMatch` in favor of the new `Does.Contain`, `Does.Not.Contain`, `Does.StartWith`, `Does.Not.StartWith`, `Does.EndWith`, `Does.Not.EndWith`, `Does.Match` and `Does.Not.Match`.
TextContains is a holdover from when  we supported the Text prefix. If it duplicates other tests, we can drop it, otherwise, rename it.