shuffle our bridges when we load them from config
Right now when the Tor client is configured to use bridges, it adds each bridge to its state file, and then it selects which bridge to use just like it selects a guard. That means when we changed to the 1-guard design, Tor clients by default use whichever bridge is listed first in their bridge list.
When we started shipping a hard-coded list of bridges with Tor Browser, that meant that every Tor Browser client who used default bridges would use the first bridge in the list, they would all fall back to the second if the first went down, etc. This is poor for load balancing and probably poor for other properties as well.
The Tor Browser team hacked around this issue in legacy/trac#18113 (moved), by shuffling the bridge lines for each user, and recording the shuffle outcome somewhere in the prefs so each user can have a persistent ordering.
But Tor itself does almost all of what we want: if Tor itself shuffled the list of bridges each time it reads its config, then the very first time, whatever order is picked will get written into the state file that way, and then for future times, the shuffle outcome won't matter because we'll go with whatever order we find them in the state file.
This fix, on the Tor side, will also help in non Tor Browser cases, e.g. when the user pulls down a list of 3 bridges from bridgedb and adds them to her torrc file.