Move notifiers around
Extract common notification logic into BaseNotifier
Refactor notifiers to maintain an `enabled` state

Rather than initialize the workers outside of the worker classes, the workers now initialize themselves completely, including constructing a client. While this does make testing a bit weirder due to the lack of dependency injection, it does make centralize the construction of a notifier and simplify the attachment of said notifiers.
Rename to avoid collisions