Select a single proxy from a set of proxies available for the given host. This implementation
selects in the following manner: 1) If proxies provided is null or array of 0 length, null
is returned. If only one proxy is available (array of length 1) then the entry is returned.
If proxies provided is length greater than 1, then if the type of a proxy in the array matches the given
protocol (e.g. http, https), then the first matching proxy is returned. If the protocol does
not match any of the proxies, then the *first* proxy (i.e. proxies) is returned. Subclasses may
override if desired.
protocol - the target protocol (e.g. http, https, scp, etc). Will not be null.
proxies - the proxies to select from. May be null or array of length 0.