More notifications

Lets make notification better.
- Notification is now a class we can instantiate
- add `Notification#metric_gauge`
- on each error_rate calculation, send metric_gauge for **error_rate**, **failure_count** and **success_count**
- add `Notification#notify_warning`
- notify a warning if the sleep window is smaller than the time_window
- force **sleep_window** to equal **time_window** if it is
too short.

No I can't do this as partition is a changing value.