Improvements to IME handling in Windows 8: the correct language is announced when switching, and conversion modes are now announced when changed.

* ime.cpp: no longer track a disableIMEConversionModeUpdateReporting variable for temporarily disabling conversion mode update announcements as disabling in inputLangChange and then re-enabling in TSF does not work on Win 8 as inputLangChange is sent *after* tsf change. Instead just delay reporting of conversion mode updates to the next message pump via a PostMessage.
* tsf.cpp: no longer make use of lastInputLangChange variable, instead always call GetKeyboardLayout(0). On Windows 8  lastInputLangChange when in a tsf change was always wrong as inputLangchange happens *after* tsf, not before.
More translator comments. Now covers 90% of strings. Re #1410 June 12 patch.
Merge branch 'heads/release-2013.1'
No longer announce garbage on the desktop when the Google Japanese or Atok IME input methods are in use. Fixes #3234.
In Windows 7 and later, no longer inappropriately announce  speech recognition and touch input as a keyboard language change.

tsf.cpp: support ITfInputProcessorProfileActivationSink::OnActivated instead  of ITfActiveLanguageProfileNotifySink::OnActivated, making use of the extra arguments, which can clearly tell us if a profile is  keyboard or speech etc. Fall back to ITfActiveLanguageProfileNotifySink if ITfInputProcessorProfileActivationSink cannot be registered (this happens in XP).
Merge branch 'heads/release-2013.1'
Merge branch 'heads/release-2013.1'
Fix typos in changers and userGuide documents. Fixes #3310
Rename the report layout tables option in the Browse mode settings dialog to Include layout tables, reflecting the fact that it affects more than just reporting. Fixes #3140
GUI: re-wrid the message box that appears when trying to open a settings dialog when one is already open. Fixes #3292
speech.speakTypedCharacters: ignore character 0x7f produced by control+backspace in some apps. Fixes #3315
espeak synth driver's speak method: actually save the result of filtering out controlA, less and greater characters from the string to speak. Again stops eSpeak's voice parameters from changing due to text containing these characters. Fixes #3334
Update what's new
JAB NVDAObject: only cache  _JABAccContextInfo for one core cycle, rather than the life time of the object. Allows changes to name, description and value to be reflected straight away.
JABHandler: listen for nameChange, descriptionChange and valueChange events and pass them on appropriately to  the focused, or a new, NVDAObject
Update what's new
Merge branch 'javaEvents' - changes to the name or value of the focused control in a Java application is now automatically announced and reflected when further reviewing the control. Fixes #3119.
displayModel.py: Normalize Arabic presentation form B characters to their basic Arabic (non-presentational) characters where possible.
Make sure not to reverse numbers in Arabic - Even though the line may be RTL, numbers are always read LTR.

Specifically:
* gdiHooks.cpp, ExtTextOutHalper: if the text direction according to Windows is definitly RTL, scan the text for numbers, and if they are found, give it a special directionva lue of -2 (numbers within  RTL text).
* displayModel.reverseAndNormalizeRtlString: no longer do the reversal, and rename the function to normalizeRtlString.
* displayModel.processFieldsAndRectsRangeReadingdirection:
	* If a field's direction is -2 (numbers within RTL text) change it back to -1 (RTL) but set a shouldReverseText attribute on the field to False to indicate that this RTL field  shouldn't have its text reversed, even though for ordering within other fields it should be considered RTL.
	* When reversing runs, do not reverse the text for a field if its shouldReverseText attribute exists and is False.
	* If we are not reversing the text for a field, then we must re-reverse the rects for that text as they had all previously been reversed.
Only reorder rtl/ltr runs in a line from displayModels up to Window boundaries. I.e. text from separate windows that happen to appear on the same line is never reordered relative to the text in other windows.

This fixes the issue where labels in Windows Explorer file properties dialog were being read after date/times if date/time is set to Arabic. Of course in a true Arabic UI there may be labels that should be read first but are positioned on the right, but this change at least would allow us in future to configure this easier. At a fundermental level though, NVDA should only reorder text, not reorder controls and Windows.

 Specific changes:
	* displayModelChunk_t: add a hwnd member.
	* displayModel_t: allow construction  with an optional hwnd argument. This hwnd is stored on the instance for use in later chunk insertions.
	* displayModel_t::insertChunk: after inserting the chunk in to the XY map, update the chunks' hwnd member if this displayModel has a valid (non-0) hwnd.
	* gdiHooks: when creating a displayModel specifically for a window, provide the window handle to the displayModel as its hwnd so that it is aware of it.
	displayModel.py: rather than calling processFieldsAndRectsReadingDirection directly for each line of displayModel text, instead call a new function, processWindowChunksInLine, which calls processFieldsAndRectsReadingDirection separately for each lot of text in the line upto any window change.