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.

Future work:

 - encapsulate the error/warnings buffers in Contexts, and
   only expose a minimal representation nessecarry 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.