After contracting, isExpanding should be falsy.
Refactor ImageExpand.waitExpand():

- wait for the first frame to be loaded instead of the metadata before expanding.
- to my understanding, browsers will not always start the download immediately
  if the video isn't on autoplay, force it with load().
Rewrite the Filter.
Add per-filter anonymizing.
Close #854.
Recursive setting for filters.
Close #623.
Close #779.
Fix importing and conversion of old filters.
Re-arrange filter items to save some space.
Add importing/exporting of filters.
Close #942.
Focus the filter input when creating new filters.
Fix conversion of highlight class and pinning.
Move filter buttons at the top.
Create new filters at the top of the list.
Enable the save button immediately on text input.
Save the filter when pressing enter.
Filter exceptions. Close #792.
Filter notifications.