SI-7345 Exploit named/default args
  - Collapse overloads of `rootContext`
  - make `atOwner` more concise
SI-7345 More refactoring and documentation in Contexts

  - Use `firstError match {}` rather than `if (c.hasErrors) c.firstError ..`
  - Convert implementation comments to doc comments
  - Add new doc comments
  - Refactor `Context#make` for better readability.
  - Note a few TODOs.
  - Roughly delineate the internal structure of Contexts with comments.
SI-7345 Combine `mode` and `state` methods into `contextMode`.
SI-7345 Move `isNameInScope` closer to its compadres.
SI-7345 Decided to leave well enough alone with dead code warning forcing.

While `neg/check-dead.scala` indeed passes without this facility, I'm not
convinced that removing the force is a good idea. So instead I've removed the
TODO.
SI-7345 Restore alignment.

Whitespace only, nothing to see here.
SI-7345 Make a method in Contexts private.
SI-7345 Prefer using a throwaway silent context over error buffer flushing.

Applied to Scaladoc.
SI-7345 Remove unneeded error buffer flushing.

It was a throwaway silent context, we can just let it drift out of
scope and over the horizon.
SI-7345 Prefer using a throwaway silent context over error buffer flushing.

Applied to Infer#isApplicableSafe. Less manual error buffer management
affords greater opportunity to cleanly express the logic.