Improvements
1. Added basic support for patterns to UIComponent.
2. Added pattern example.
3. StringPropertyCondition directly casts values to strings. Does not call the AutomationPropertyHelper.ToString() method.
4. Added methods Equals and ProgrammaticName to AutomationPropertyHelper.
   a. Equals checks if two properties are equal. ControlType properties are checked using their Ids.
   b. ProgrammaticName returns only the name of a property without the "Property" suffix.
5. ConditionHelper uses AutomationPropertyHelper.Equals() to check if a PropertyCondition's requirements are met.