Overloaded Direct.cpp's assignment operator
It turns out that the algorithm for Lehmer codes on Wikipedia depends on the
degree of the symmetric group in which the permutations are being considered,
and so, for example, (1 3) has a different Lehmer code in S_3 than it does in
S_4.  This leads to problems when your permutation objects don't care which S_n
they're in.  Fortunately, it turned out that modifying the algorithm to work
around this was very easy.
Figured out an algorithm for converting modified Lehmer codes to permutations