Fix edge case handling in Rust protover is supported

Tor's Rust FFI for protocol_list_supports_protocol_or_later() returns true for the empty protocol list.

In C, the function returns false, but this behaviour is undocumented.

This bug doesn't affect protocol_list_supports_protocol() in Rust, because the Rust error checks are done in a different order.

I'll add a quick fix to legacy/trac#33222 (moved), but someone else will need to do the backport. We might want to do the Rust error checks in the same order, too.