Changed behavior on unknown patterns to allow usage of custom patterns with the wrapper.

Before TryGetPattern was calling WrapObjectAsPattern, which in turn asked Schema for pattern info. Schema is internal and not extensible, hence UIA COM Wrapper effectively can't be used with patterns outside of set of patterns hardcoded in Schema. This changes the behavior: if we don't know how to wrap pattern - just return it as it is and let caller deal with consequences. Actually, it seems fine for custom patterns as author of custom pattern should know what he needs to do in such case.
Made AutomationElement.Wrap method public to allow custom UIA patterns/properties to wrap COM-returned native IUIAutomationElement instance with more natural for managed automation AutomationElement.
Removed KeyInterop because the same class with same members exists in the referenced WindowsBase assembly, which leads to conflicts if it really needs to be used
Fixed bug: _identifierDirectory maps int IDs to AutomationIdentifier instances, there're no guids there.
Merge remote-tracking branch 'origin/key-interop-removed'
Replaced single _identifierDirectory with one Dictionary<int, AutomationIdentifier> for each AutomationType.

Custom patterns' IDs intersect with ControlTypes IDs. I've encountered a situation where registration of my custom pattern returned id equal to ID of existing ControlType (Button) (this ID is 50000). Hence it is not correct in general to put all IDs to single Hashtable. This change makes the declaration into code.
Merge pull request #2 from ivan-danilov/master

Changed behavior on unknown patterns to allow usage of custom patterns with the wrapper.