Standardize alerter engines.

* Each engine receives the following data:
 - `path`: zk path that is alerting.
 - `state`: the state that is being alerted.
 - `message`: reason generated for given state.
 - `params`: arbitrary data from the config (yaml) for the given alert.

With this setup engines like Email or Hipchat can manipulate the data enough to construct a well-read subject/body/notification.
I can see how that's not obvious -- it's part of the loop, on line 137. Any idea how to make it more obvious?