before this change, we always choose the monitors with the lowest
priority and ignore the ones with higher priorty. but per
https://www.ietf.org/rfc/rfc2782.txt
> A client MUST attempt to contact the target host with the
> lowest-numbered priority it can reach
so, if a monitor is not reachable, we should try the ones with the
lowest ones *reachable*.
after this change, MonClient will memorize the monitors have been
contacted. and will continue hunting the ones not tried if the last
batch fail.