lookup the bmc smartproxy via subnets.id

This fixes 6518, by picking the smartproxy to use via subnet_id.  Before it was trying to find a dhcp_id or tftp_id that matched the subnet_id, but since it's a subnet id it really should be comparing subnets.id.

I'm not sure how it was working most of the time before, but with this change it works all of the time.
AFAIR we wanted to use dhcp or tftp to ensure that we have a proxy on this network.
both dhcp_id and tftp_id both relate to a subnet id that is associated with the proxy.