Refactor advert module

Additionally, `page:ready` events are constrained to one per context. It's the simplest way to prevent multiple instances of modules/adverts/etc being loading into it. This might turn out to be too restrictive later on; let's see.