Make entry relays expire idle client and bridge connections

This is a follow-up to #21406 (moved).

Now that channel_is_client() works, we should use it instead of or_circuit_t.is_first_hop.

This will make circuit_expire_old_circuits_serverside() actually expire circuits correctly.

The rest of the changes are logging or refactoring, the checks are either correct, or have no impact. (In connection_exit_begin_conn(), we will change an end reason from MISC to TORPROTOCOL.)