First pass at service checks for ES, Redis and Postgres

For review. I still need to do some tests locally but I am currently having issues with Colvin on my VM.

Question about service checks: should a service check overlap the agent check failures when an integration is misconfigured? Or should it just report "no data" when an integration is misconfigured?

We should probably add tags to the service checks (at least the one specified here: https://github.com/DataDog/dd-agent/blob/master/conf.d/elastic.yaml.example#L20 )