dev: refactor, fix, and add rules to commit linter
dev: refactor, fix, and add rules to commit linter

- Conform commit linter to 50/72 rule
- Add linter rule for body line length; excludes the footer and lines
  with long URLs.
- Add linter rule for validating scopes are in lexical order.
- Add linter rule for validating footer refs.
  Footer references should reference one thing per line. That thing can
  be one of:
  - An URL.
  - An issue or PR reference (local or remote).
  - A 12-character commit hash (local or remote).
- Extend linter to detect new scopes for docs:
  - Commits of type 'docs' can now use these additional scopes (in
    addition to other possible scopes):
    - docs(install) -> for changes to our installation guide(s). It is
      expected for this to change so often that it has its own scope.
    - docs(X) -> where X is the basename of any org file in docs/*.org.
      e.g.
      - docs(index): ...
      - docs(modules): ...
      - docs(faq): ...
- Modify the scope checker to consider *any* parenthetical scope given
  for bump, revert, merge, module, or release commits to be invalid.
- Update bump commit linter for 12c hashes (see 3bedae38dd9f).
- Fix language in imperative ref linter warning.

Ref https://discourse.doomemacs.org/how2commit
Ref 3bedae38dd9f

hlissner/.emacs.d,hlissner/doom-emacs,hlissner/doom-emacs,hlissner/.emacs.d,hlissner/.emacs.d,hlissner/doom-emacs,hlissner/doom-emacs,hlissner/.emacs.d,hlissner/.emacs.d,hlissner/doom-emacs,hlissner/.emacs.d,hlissner/.emacs.d,hlissner/doom-emacs,hlissner/doom-emacs,hlissner/.emacs.d