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`.
This works, but is it the correct way of doing this? I don't see `Is`, `Has` or `Contains`, I also can't do `Is.LessThan(...).And.Is.GreaterThan(...)`.

Should they be added to improve the syntax? It is less import for Is than Does as the syntax reads fairly well for most of the Is conjunctions.