Extension:CentralNotice/Notes/Banner controller refactoring

Here's a place to keep some rough notes about reorganizing CentralNotice banner controller code.

Goals

 * Improve modularity and separation of concerns in banner controller code.
 * Adapt the banner controller API as needed for new campaign-associated mixins.
 * Improve site performance when banners are shown and when they're not.

Reducing load of top-loading RL modules

 * Does the fact that RL modules are cached in localStorage somewhat mitigate performance gains from doing this?
 * Why should any CentralNotice code be top-loaded?
 * The sooner the bannerController gets going, the less of a page bump there will be when a banner is shown. It's also important to have as few extra round-trips as possible.