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`.
Can you give me an example of why this is needed? For example, I can imagine simply using
  Assert.That(someString, Does.StartWith(*).And.EndsWith("*"));
without being too confused.