CORE-4239 Refactored IplantAnnouncer.

Added IplantAnnouncement and IplantAnnouncementConfig.
IplantAnnouncer now queues IplantAnnouncement popups, which take IplantAnnouncementConfigs that determine if they are closable, their timeout, and their styles.
IplantAnnouncer still determines an IplantAnnouncement popup's position.
Added static schedule methods to IplantAnnouncer that can accept plain text messages, message widgets, or configs and schedules an IplantAnnouncement from those parameters.