Functionality implemented:
- :tgroupcreate to create a tab group
- :tgroupswitch to switch to or create a tab group
- :tgrouplast to switch to the previously active tab group
- :tgrouprename to rename the current tab group
- :tgroupclose to close all tabs in the current tab group
- :tgroupmove to move the current tab to another tab group
- :tgroupabort to destroy all tab group information and show all tabs
- :tabgroup... aliases for the above commands
- Completion for :tgroupswitch and :tgroupmove
- Restoring tab group setup on firefox start (seems to just work without any extra code)
- Basic mode indicator
- Setting for initial urls for to use newly created tab groups (after first)
- Setting for whether :tab shows hidden tabs.
Edge cases handled
- Opening tabs outside of tridactyl mechanisms (e.g. firefox gui, C-t, etc.)
- Switching to a hidden tab
- Detaching and attaching tabs
- Pinned tabs (they can't be hidden; the commands ignore them)
- Various other edge cases
Fixes#811.
* Consistent semicolons at end of solid bullet points under Permissions header.
* Bullets under Highlighted Features start with a capital letter and end with a period.
* Changed first line to bold because ## header syntax is not working.
This just removes the background.ts code that detects whether the user
wants to clobber their csp and adds an error message if the user tries
to `set csp clobber`.
The `csp` setting is marked as deprecated but left untouched in case we
find a way to edit CSP in a way that complies with Mozilla's policies.
The csp-editing code in `requests.ts` is left untouched for the same
reason.
As discussed on riot, turning noiframeon into a site-specific setting
is a good thing for consistency. This commit also adds a deprecation
warning when users try to `:set noiframeon` and updates the
troubleshooting guide.