internal/health: new health check package

Currently only serving Redis, but could be used for other GCP gRPC
connections.

Mildly surprising behavior: taking down Redis does not make Pool.Get
return an error: it isn't until sending another request on a connection
before the pool starts failing.  This only matters when testing the
health checks with no load.

Change-Id: Ie720b80a398fd9f7d4aa6ab0c6a88adaa85ccdc9
Reviewed-on: https://go-review.googlesource.com/76750
Reviewed-by: Tuo Shan <shantuo@google.com>
5 files changed