chromeos: Support accessibility automation under SingleProcessMash

Introduce AXAshWindowUtils to allow the accessibility subsystem to
convert between ash proxy windows and browser client windows while
serializing the AX node tree.

Support out-of-process clients like shortcut_viewer by skipping the
proxy conversion, since they use the AXHost mojo service and depend
on having the ash-side windows and widgets serialized.

One side effect of this change is that the entire ash desktop is
serialized with the first AXTreeUpdate when ChromeVox is enabled.
This does not seem to cause any issues in practice.

Bug: 911776
Test: added to ash_unittests

Change-Id: I7f988b57fad2548c4f3f16460d8a92ff967bad50
Reviewed-on: https://chromium-review.googlesource.com/c/1366280
Commit-Queue: James Cook <jamescook@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#616435}
20 files changed