Announce current OakChooser item to accessibility

This solves accessibility of situation of a user browsing results in
OakChooser (currently File Chooser and Symbol Chooser). Typically
the user is in search field and after typing the search string
wants to use arrow down and up to browse results.

The problem this presented to accessibility was that VoiceOver reads
only changes of selection in the current VoiceOver item. As the user
is on the search field but the selection changes in the results table
below, VoiceOver did not read the various search results when pressing
arrow up/down.

Alternative was to leave the search field, move to the results table,
interact with it and then navigate it with VoiceOver. This is however
not the desired user experience comparable to that of sighted users,
as the VoiceOver user still has to do quite a few steps after entering
the search string to browse the results, not to speak about the situation
when the user would like to change the search string - he/she would need
to leave the table and get back to the search field.

This solves the problem by making the search field (or more generally
any user interface element that triggers change of selection in the
results table, which should be the element the VoiceOver cursor is on)
announce to accessibility the contents of the selected row in search
results table.

See this thread on accessibility-dev mailing list where the options for
implementing such a user interface in an accessible way are discussed:

http://lists.apple.com/archives/accessibility-dev/2013/Dec/msg00000.html
and
http://lists.apple.com/archives/accessibility-dev/2014/Feb/msg00016.html

If the user did not move selection (it is on the first line) and they
want to hear it, they should use arrow up to hear it. Then they can
use arrow down to move through results.
Workaround for accessibility of OakChooser's search field

Currently for VoiceOver user when the text cursor is at the end of the search
field (which is 99% of the time) and the user wants to navigate the results
in the table view using arrow down, then after each arrow down, VoiceOver first
plays a "end-of-text" sound, then announces whole contents of the search field,
and only then announces the newly selected search result. (The same happens
when text cursor is at the beginning of the search field and user presses
arrow up.)

This is probably a bug in the way AppKit handles text field accessibility - see
http://lists.apple.com/archives/accessibility-dev/2014/Feb/msg00019.html

I also reported this as <rdar://problem/16271507>

I hereby present a hacky workaround for this - a subclass of NSSearchField
that tricks accessibility into thinking there is one extra space before and
after the text in the search field. Therefore VoiceOver will not think the user
is at the end of text when they actually are, and therefore will not play the
"end-of-text" sound and announce whole contents of the search field before
getting to the information user wants (the newly selected search result).

While this is a bit hacky, along with the previous commit it allows VoiceOver
to have the same instant great experience as a sighted user when filtering
and browsing results in OakChooser. So I think it's worth the hackiness until
there is a better alternative.

There is only last issue, as currently VoiceOver is very chatty when the
OakChooser window appears: first says "Go to file", if user interrupts it with
an action (i.e. moving VO cursor or typing a character), then VoiceOver starts
telling the whole title of the window, and only after user interrupts it again
does VoiceOver say or announce only the user actions (including search results
table selection change).

So the simpliest if the user wants to start navigating the table items
immediately after showing the OakChooser's window (i.e. without entering
a search term) is to, after showing the OakChooser (e.g. with ⌘T or ⇧⌘T),
quickly type any letter and immediately delete it with backspace and then
use arrow down/up.
fixup! Do “refresh” for actions which are no-op due to current state
Add titles to HTML used in about window

With voice over enabled the titles will be read aloud, so it makes sense to set them to something sensible.
Do not call unimplemented method on super

This was broken by commit 5edd3479badb.
Remove unused code
Only draw table view as key when linked search field has focus
Ensure scope bar has one button selected

It was possible to press the already selected button to deselect it. Now we reselect it, when that happens.
Checkin release notes
Do not use ‘autorecalculatesKeyViewLoop’ for chooser windows

Instead we manually call recalculatesKeyViewLoop on the window. This is because the auto-recalculation messes up. First time the window is brought up, it works fine, but the second time, nextValidKeyView will return ‘nil’ for the last view (causing the key view loop to not be a loop).
Use bindings instead of notifications for chooser filter string
Use ‘assign’ instead of ‘weak’ when building for 10.7

On Mac OS X 10.7 we cannot use weak references to (amongst others) NSImage objects. In this case, there shouldn’t be a problem with using assign.
Add test for thai script

This isn’t causing an issue, though at a higher level we wish to split the combined characters when using backward delete.
Add attr.bundle-editor.* scope to bundle editor

This allows us to limit or override things just for the bundle editor.
Move “Open Target” out of the Avian bundle

Instead it’s in the OakDebug bundle. This command is only useful for people working on the TextMate source (in TextMate).
Do not return void from constructor (error with clang-503.0.38)
Do not use va_start macro with variable reference

This is undefined according to the standard and is a warning with clang-503.0.38.
Workaround for “format string is not a string literal” warning
Full implementation of ‘labels’ property
Let ‘tab’ in pasteboard history move to next key view

Similarly shift-tab moves to previous key view.