core: Add proxy agent support verification

When a proxy Host is selected, there is no check if the
Host supports the requested PM agent.
If for example a Host H1 in Cluster C1 need fencing and has agent A1,
if we have Host H2 in Cluster C2 that does not support A1 and a Host
H3 in Cluster C3 that supports A1, the current implementation may
select H2 as a proxy, this will fail because A1 is not supported on
C2 and all proxy retries will be done on H2 while we have H3 that should
succeed to fence H1 since H3 is in C# which supports A1.

This patch adds a check to the proxy selection algorithm that insures
that the selected proxy supports the required PM agent.

In case of dual agents, support for both agents is required since in
concurrent PM devices we need both, and in sequential PM devices Primary
might fail and then Secondary PM agent should attempt to fence the Host.

Change-Id: I6e6610e1e7be660c894c879288d9df9b0956eda5
Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1036365
Signed-off-by: Eli Mesika <emesika@redhat.com>