Handle multiple pass-through instructions when merging local values

Summary: FrameState::merge had logic to keep the local value if one of the
branches had a value that was the dest of a pass-through instruction
whose source came from another branch.  This diff generalizes that to
handle cases where there are multiple pass-through instructions in one
of the branches.

Reviewed By: @swtaarrs

Differential Revision: D1569596
Fix a bug in the HealthMonitor, and try turning it on

Summary: While digging into the idle-flush issues the other day,
I noticed what I think is a bug in the health monitor code;
once a thread thinks its in an unhealthy state, it will stick
in that state until it gets a hi-pri request.

I don't think the reverse is an issue; if its initially healthy,
there's no need to check again. If there was a job available,
it will grab it immediately and go; and if there wasn't we're
unlikely to be in an overload situation.

Reviewed By: @​dmitrip

Differential Revision: D1554101