Implemented proxy-list shuffle optimization and added associated tests.

Shouldn't it check if the index of the iteration is `0` instead of `1`? So it checks if the found proxy header is first in the array instead of second? As this would most likely cause re-shuffles of the proxy array every time it's called.