Replaced usage of UIItem.Pattern(...) with extension method GetPattern<TPattern>()
Fixed issues with WPF ComboBox.

Made ComboBox collapse itself after selection if item requested to select is already active and thus Select just returns.

Absence of this code leads to problems in case when client code tries to select already selected item. Then base.Select(itemText) or base.Select(index) do nothing and combo box stays open. Next user actions may not expect this which could lead to confusing results. For example, after selection in combo box client code wants to click on check box below - White emulates click on the place where check box is located, but combo box drop down is at the place, so some another item is selected. So, we have to close combo box regardless of the fact that selection did something.

For same reasons added ComboBox collapsing after getting SelectedItem and SelectedItemText.
Without this change ComboBox expansion lags behind SelectionItemPattern.Select() which throws InvalidOperationException for some reason.
Partial solution for WinForms ComboBox.

For some reason, in UIA v3 ComboBox doesn't expose ExpandCollapsePattern. Instead it has button "Open" which can be clicked. This change abstracts required changes away.
Fixes possible COMException during Window.WaitForProcess() execution.

If process exited already, then automationElement.Current.ProcessId throws COMException with E_FAIL. Hence, instead of getting processId every time, we'll take everything we need at ctor time and just use it afterwards.
Fixes #186: TextBox.Text property assignment types only part of text.
On Application.Close() instead of closing main window only it is better to close everything we can - there can be more than one window, e.g. in case of multi-threaded UI case.
Removed focus setting all the time