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.

From an API point of view, I get your point. But I want to fire metrics everytime internal code calculate a rate and I don't want a future mistake on code name cutoff the metrics.

I'm gonna give a go to your idea and see how it goes in the ode.