Make Mjolnir stop more robust
Since Mjolnir is a shared instance, we need to be a bit more careful about
clearing internal state than we do for components. This clears watcher and
dispatcher refs in case `stop` is called multiple times (which can happen in
prod as well as tests).