Rejigged HealthChecker component logic

Split out code that can be used by multiple components.  Still working
on where error display code will live.