Handler returns an http.Handler that checks the status of all the dependencies.
Handler responds with either:
200 OK if the server can successfully communicate with it's backends or
500 if any of the backends are reporting an issue.
Checker returns an error indicating if a service is in an unhealthy state.
Checkers should be implemented by dependencies which can fail, like a DB or mail service.