Java Access Bridge support: When a java application comes into the foreground, keep trying to fetch the real focus until a timeout occurs. Iff this fails, fall back to the root java object for the window. Re #3753
Java Access Bridge support: no longer expose position information for radio buttons as they are hardly ever placed siquentially in the same parent with no other controls at all. Stops NVDA announcing "1 of 1" all the time. Re #3754
Java Access Bridge support: make interacting with JComboBoxes much more friendly. Re #3755

Specifically:
	* JABHandler: no longer redirect focus events to the new focused java object's active descendant. Instead handle the focus event normally and have JAB NVDAObject's event_gainFocus queue another focus event for the descendant if there is one, only after its completed this focus event. This means that NVDA will fully report any object that gets focus, before reporting its active descendant. As the logic is now in the NVDAObject it can be customized for specific situations.
	* JAB NVDAObject's name property: filter out XML markup like we already do for description. Some JComboBoxes contained html in their item names.
	* Add a new ComboBox NVDAObject, which handles some issues with JcomboBoxes:
		* its value is now the name of the active descendant (selected item). Previously it had no value.
		* Expanded and collapsed states are exposed based on whether its first child (menu) is invisible or not. Previously it sometimes exposed expanded by itself, but never collapsed.
		* Focus is not bounced to its active descendant after a normal focus event unless the comboBox is currently expanded. Previously focus always landed on the active descendant even if the comboBox was collapsed.
Java Access Bridge support: fix broken object navigation within tables.

Specifically:
	* The indexInParent property of NVDAObjects representing table cells in Java Access Bridge is None if  the object was not created via an event. Specifically AccessibleContextInfo.indexInParent is -1. This completely breaks next and previous. Therefor for next, previous, firstChild, lastchild and children: correct the new object's indexInParent to what it should be.
	* The parent property of NVDAObjects representing table cells in Java Access Bridge is the Desktop window  if  the object was not created via an event. Specifically getAccessibleParentFromContext returns 0. This causes next and previous to sometimes end up outside the Java application. Therefore for next, previous, firstChild, lastChild and children, set the new object's parent to the correct parent if it doesn't seem to be a Java object.
Java Access Bridge support: report row and column counts for tables and report column and row numbers for table cells. Re #3756

Also fix up usage of the wrong type for vmID -- should be c_long not c_int. New table code indirectly showed this bug.
Java Access Bridge support: support row and column headers for Java tables. Re #3756
Java Access Bridge support: map labels to static text and rootPane/layeredPane to panel. These changes allow labels to be navigated to with object navigation with simple review, and they also get picked up when calculating a dialog caption. Re #3757
Java Access Bridge support: remove a very old and now wrong implementation of event_stateChange on the JAB NVDAObject which was incorrectly overriding our cache of the acccontextInfo. Allows name, description and value property changes to report their new values correctly. Re #3770
Java Access Bridge support: stop getAccessibleTableInfo from raising an error when the result is 0. the NVDAObject table properties already handle the result, but don't necessarily catch the exception. Fixes errors in LibreOffice tables.
IA2 live region support:  fix typo - actually do something for description change
Fix recent regression in IA2 live regions support where certain text was being announced even if aria-relevant was only additions.

Specifically:
	* getTextFromIAccessible: add an includeTopLevelText argument (true by default) which controls whether text that is not an embedded object is included in the text collected.
	* all calls to getTextFromIAccessible that use default argument values: don't specify the values.
	* When adding text due to a text inserted or text updated event, only tell getTextFromIAccessible to include top level text if aria-relevant allows text.
work around issue ti33099 regarding speech/braille viewers
Merge commit 'fetch_head' into jpbranch
Merge branch 'javaImprovements'. Fixes #3753, #3754, #3755, #3756, #3757, #3770
work regarding characters u+25EF and u+2613
Merge commit 'fetch_head' into jpbranch