Refactor notifiers

Notifiers are now classes with a common interface
inherited from `Guard::Notifier::Base`:

* `#notify` (required)
* `.available?` (optional)
* `.supported_hosts` (optional)
* `.gem_name` (optional)

Introduce a new `#normalize_standard_options!` method to
avoid having a weird implementation for `#notify` in
Guard::Notifier::Base!