First draft of banners and upgraders.

old-banner needs to be manually copied into manifest.json