SI-7319 A modest refactoring of error/warning buffer handling.

Much, much more is required, but that should be targetted against
master. This change is limited to cleaning up obvious bugs while
avoiding major behavioural changes.

 - issue and clear warnings in `typerReportAnyContextErrors`, in addition
   to errors.
 - similarly, defensively clear warnings in `resetContexts`.
 - centralize code to issue buffered warnings.

I was unable to craft a test like to motivate this, I don't fully
understand the circumstances that led to errors being registered
in the root context in the test case t7319.scala.

Future work (SI-7345):

 - encapsulate the error/warnings buffers in Contexts, and
   only expose the minimal representation necessary to propagate
   these between contexts, filter, and issue. This should fix
   a number of places where buffered warnings are not treated
   correctly (these were added recently, but places like `withSavedContext`
   were not updated.)
 - bring order to other menagerie of state within Context.
   It might be simpler and safer to carry it around in a nested
   case class, so we could use the 'copy' method to selectively
   modify one or two fields.