ChromeVox: Implement and test UserAnnotationHandler.

Phase 2 of ChromeVox custom annotations project.

This change adds a new file to the ChromeVox codebase called
user_annotation_handler.js. This file exposes methods to create
and get annotations for AutomationNodes. It also modifies the Output
module to check for annotations when outputting the node name, and
reports one to the user if found (and the feature is enabled). Lastly,
this change adds tests in the user_annotation_handler_test.js file,
which act as integration tests by asserting speech output.

This file is being added to support ChromeVox custom annotations.
For more details on that project, please see the following design

document: 
https: //docs.google.com/document/d/1K6Sg0wLOjUdz7ycJqxPnFWNvie7yaJ3enlss10cXKqM/edit
Change-Id: Ib35c77f8df295f9dbae5ba702ffef6af6668b269
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1992805
Commit-Queue: Akihiro Ota <[email protected]>
Reviewed-by: David Tseng <[email protected]>
Cr-Commit-Position: refs/heads/master@{#739136}
8 files changed