Implement improved guard-node design

This ticket is about revisiting the guard picking algorithm of Tor, improving it and implementing the changes in little-t-tor.

Related tickets:

Ticket #12595 (moved) is about designing a better algorithm for picking guard nodes (proposal 259).

Ticket #17262 (moved) is about simulating and verifying the correctness of the new algorithm.