UI: Add accessibility descriptions / tooltips.
Fix QSchemeRule#init(propertyList:) to read font styles

Was reading them from the wrong dictionary.
Add doc comments for QRuleTableController properties.
RuleTableCon: add needsUpdate property to block table.reloadData calls

Includes a shouldAutoUpdate(bool) { ... } method for setting/restoring
the old value. Should probably add this for selectors as well.
RuleTableCon: move view binding code into extension.

Trying to make split the controller off into multiple extensions that
fulfill a small purpose. They'll still be codependent, but at least
relevant code should all be closer together now and in a small section
of its own.
RuleTableCon: doc comments for private functions.
Disable auto-update when adding/deleting rules- animate deletion.

Auto-update has to be disabled simply because reloadData, as usual,
would make the count expected after insert/removeRows to be off by
whatever was changed. Can't really be having that.
RuleTableCon: move doubleClickedTableView action to extension.
RuleTableCon: move NSTableViewDelegate implementation to extension.
RuleTableCon: remove add/remove button stuff to extension.
RuleTableCon: refresh name columns on fore/background color changes.

In case anyone wonders why not do, say,

    ruleObservers += [key, key].map { key in
      observerKeyPath(key, ...) {
        /* refresh */
      }
    }

The answer is because this makes the compiler crap itself.
RuleTableCon: move functions used in view binding down to that section.
RuleTableCon: one observer for each row; refresh name and updated column

This is opposed to the previous implementation which had a new closure
per key per row, and updating any key refreshed all columns (i.e., if
the font style was changed, the colors would be refreshed even if it
had no bearing on that -- this changes now since only the union of the
name and whichever key's column was updated will be refreshed).