Added Application main window activation after process startup.

Sometimes, especially when White-driven UI test started from console shell or another programmatic way, OS launches application under test in the background and test fails because of this. This commit fixes the problem.
Fix: problem with cursors that are not the same on my OS as hardcoded in the MouseCursor class
Merge pull request #170 from ivan-danilov/master

Added Application main window activation after process startup.
Merge pull request #182 from ivan-danilov/cursors-fix

Fix: problem with cursors that are not the same on my OS as hardcoded in the MouseCursor class
Merge remote-tracking branch 'upstream/master' into UIAComWrapper
Revert "Added Application main window activation after process startup."

This reverts commit c3c21c854489c95443c31e0539a8a8a60ba6ea62.
Merge remote-tracking branch 'upstream/master' into UIAComWrapper
Fixed incorrect merge from other branch
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.
Added some handy extension methods to AutomationElementX class
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.

Added Thread.Sleep(10) after each SendInput() call to release timeslice and allow target thread to process the input. Due to priority boost from user input it should pass execution to target thread correctly.
Removed focus setting all the time