Abstract the stats collection portions of DPClass so that additional
providers might easily be substituted in the future. Initial abstract
is weak and can expand when an additional provider is actually found.
Correct the diminishing returns calculations for the EHP Score. The
highest tier was using <= 5,000,000 instead of >= 5,000,000 causing the
EHP Score for high EHP characters to be zero.
Diablo Progress currently includes elemental damage in their unbuffed
DPS score. By calculating it, we are double dipping and artificially
increasing scores. All instances of elemental damage have been
removed from the formula.
Experience bonuses are counted in the formula so that someone opting
to use a Ruby over an Amethyst in their helmet would not be penalized
too greatly. However, with the addition of the Hellfire ring,
experience bonuses were giving Hellfire ring users a huge bonus. By
limiting the experience bonus to 35%, the original intent is kept in
tact while preventing Hellfire abuse.