add http health checks.

There will be other places where we do discriminated "unions".  Is this the pattern we want to follow?  I assumed it would be easier to have a set of pointers and say that only one pointer should be non-nil.  Sort of like proto.