FEATURE: shortcuts for quote (q) and fast edit (e) (PR #14563)

Reimplemented following the revert in ce0daae

This approach uses the global e/q shortcuts, rather than shifting focus to the quote-button component. The current quoteState is used to determine whether the quote-button is currently visible. If yes, an appEvent transmits the intention to the quote-button component. If no, the old behavior is maintained.

This PR also tidies up our quoteText qunit helper, adds acceptance tests for fast-edit, and for the q/e keyboard shortcuts. PR to be ‘rebased and merged’