* Proof-of-concept for showing card tags (#1626)
* Resolved most PR comments:
- Added a snackbar notification when clicking tag button
- Replaced magnifying glass icon with new tag icon
- Button now contains a span w/icon, to use text color
- Removed unnecessary attributes from button
- Backend now returns full noteInfos object
- Frontend now handles filtering tags
* Add options to show/hide tag button & filter tags
* Do not show tags button if, after filtering, we have zero tags.
* Change tags option to enums, optimize tags intersection check & fix code style.
* Update options-util.js to include new tag options.
* Fix wording on new tag setting.
* Add CSS to remove hidden buttons from the display layout.
* getAnkiNoteInfo extra parameter for additional info.
* Add new tag option to tests.
* Remove unnecessary changes related to anki tags option.
* Code style fixes.
* Ensure negative sequence is always -1
* Expose sequence on definition objects
* Update how sequence is exposed for definitions
* Update test data
* Update TS docs
* Update environment info to return the 'safari' browser
* Fix popup display on Safari
* Update environment assignment
* Add data-loading-stalled property when loading takes longer than expected
* Add notification when loading has stalled
* Allow getDictionaryInfo invocation on non-privileged contexts
* Update _validatePrivilegedMessageSender
* Don't listen to 'voiceschanged' event unless addEventListener is present
Also expose an event
* Improve sequence for merged entries and add sequenceDictionary
* Update docs
* Expose sequence in definitions
* Expose sequence in root definition
* Update test data
* Update dictionary settings structure to use an array instead of an object
* Update ensureDictionarySettings implementation
* Remove some usage of ObjectPropertyAccessor
* Add double-down-chevron.svg
* Add options
* Update dictionary importers
* Update settings
* Add support for collapsible definitions
* Improve case when there is a very small amount of overflow
* Fix incorrect enabled state of newly imported dictionaries
* Update PopupMenu event prevention
* Use vars for button padding
* Add button-inner-label style
* Add input-button button
* Update display of scope selection
* Add hidden argument text input field
* Remove unnecessary calls
* Display a strike through the enabled button when no scopes are selected
* Add part of speech info to headwords
* Expose parts of speech to Anki template rendering
* Expose parts of speech
* Update pitch accent categories
* Update docs
* Add part-of-speech
* Update options and tests
* Update markers
* Update test data
* Update test data
* Move translator.js
* Create new version of Translator
* Update Backend
* Update DictionaryDataUtil
* Update DisplayGenerator
* Create AnkiNoteDataCreator
* Replace AnkiNoteData with AnkiNoteDataCreator
* Update tests
* Remove AnkiNoteData
* Update test data
* Remove translator-old.js
* Add TypeScript interface definitions for the new translator data format
* Expose modifier keys
* Add updateMenuItems
* Don't close menu if shift key is held
* Add _createMenuItems
* Simplification
* Maintain a list of open popup menus
* Expose expression/reading
* Reuse existing items
* Update menu after a cache update
* Update menu position
* Fix content security policy for images
* Add createBlobFromBase64Content to MediaUtil
* Update MediaLoader to use MediaUtil
* Use blob URLs when importing dictionaries
* Update VM's URL to support createObjectURL and revokeObjectURL
* Fix test
* Move function
* Add _onSearchClick function
* Move _onSearchClick after event prevention
* Prevent search if selection is changed before a click occurs
* Remove redundant language assignment
* Segment furigana from DisplayGenerator
* Remove furiganaSegments from translator data
* Add backwards compatibility for furiganaSegments
* Update tests
* Make Deinflector._ruleTypes private
* Add createDeinflection helper
* Remove unnecessary field assignments from Deinflector
Move them to Translator instead
* Make invokeContentOrigin public
* Move display resizer functionality into a new class: DisplayResizer
* Simplify field names
* Use parent frame instead of content origin
* Remove unused
* Refactor _groupTerms and add doc comment
* Update where expression/reading is acquired from
* Add doc comment
* Add isPrimary field
* Update test data
* Add definition which has "isPrimary": false definitions
* Merge ungrouped characters
* Update iteration
* Fix incorrect code point handling
* Simplify text
* Specify language
* Update how parsed status is represented
* Add api.textHasJapaneseCharacters
* Add support for empty query
* Add support for showing the query parser for TextSourceElement
with content that does not start with Japanese text
* Update implementation of _buildTermMeta
* Remove old implementation
* Expose dictionaryPriority on frequencies and pitch accents
* Update how meta data is generated; add index
* Update order
* Update names
* Expose expressionIndex as part of pitch/frequency data
* Implement meta sorting
* Update test data
* Improve grouping for inflection and expression styles
* kanji-link => expression-kanji-link
* Remove unnecessary entry-header2 and entry-header3
* Move tag list into header for consistency with term definitions
* Move styles
* Add clear