Prototype of general host health monitor.

Summary: 1. Extended the memory protector to a general system health monitor,
which takes multiple system metrics into account. The metrics that
are considered by the monitor can be added by creating corresponding
classes (implementing the IHealthMonitorMetric interface, see
'hphp/facebook/runtime/health-monitor/health-metrics.h'), and then
registering it to the health monitor.

2. The health monitor will periodically update all metrics and then
calculate a unified current system health level, then broadcast it
to all observers. Objects that implement IHostHealthObserver interface
can subscribe the system health level by registering themselves as
observers of the system health monitor.

3. Health monitor outputs are exposed to external systems by notifying
the "external-clients-shim" proxy. Currently, it is send to stats.kvp
on port 8088.

The display on Phabricator is a little messy:

— "hphp/util/health-monitor-types.h" is newly added, contents in it
(several interfaces) are abstracted out from job-queue.h and
memory-protector.h, but Phabricator recognizes it as “renamed and
modified from protector-policy.h”.

— Similar things happens to “hphp/facebook/runtime/health-monitor/external-clients-shim.h”
and “host-health-monitor.cpp”.

Reviewed By: @bertmaher

Differential Revision: D1458015