making 'IRV()' much more easily readable

The way this code appears to be structured, though intended to be
"fast (very sublinear)", is not easy to follow due to the use of
'FavListNext[]' and 'HeadFav[]' and, therefore, not easily verified.

The code also does not appear to allow for the possibility more than 1
Voter will rank a given Candidate as highest (or at least the highest
of All eligible Candidates). If I am wrong in that assessment, such an
error stands as a testament as to just how hard to follow the code
currently is.

A more easy-to-follow approach is the following model:
    A counter indicating a Voter's "current preference index"
      (CPI) is set; this exists in the form of the "favoriteCandidate"
      member, which probably needs a better name in order to readily
      understand what it means.
    This index reflects the value of the N'th prefered Candidate
      by said Voter.
    Everytime 1 Candidate is eliminated, if the Candidate
      at a Voter's CPI in the Voter's 'topDownPrefs' list
      is the eliminated Candidate, the CPI is bumped until
      a non-eliminated Candidate is found and a vote given
      to said found Candidate.
    If the CPI should ever equal the number of Candidates,
      something has gone horribly wrong.
Fortunately, this approach is readily achieved by simply iterating
thru the collection of Voters and otherwise resulting in minimal
changes to the code.

A nice consequence of this change in approach is the ability to
eliminated the use of 'FavListNext[]' and 'HeadFav[]' entirely from
the definition of 'IRV()'. Additionaly changes may then allow for the
deletion of these two arrays entirely.