Set data version to 5 for guild loot.

This version will include the player's guild name and level in the recorded
data.  Guilds provide abilities to players at higher guild levels that
sometimes give him extra resources, for example, when mining.
Capture guild information as variable data.
Record player's guild information with sources.
Set data version to 6 for aura information.

This data version contains information about the player's current auras.
Some auras (either buffs or debuffs) could influence what items are looted.
For example, the player gets the "Lucky" buff when throwing a gold coin into
the Dalaran fountain, which increases his chances of fishing up coins.
Record player's auras as variable data.
Save info on the player's auras with sources.
Store locally if the current loot is fishing loot.

When assigning sources to the units list, store locally whether the loot is
fishing loot.  This will be used later, and is most likely more efficient than
calling the IsFishingLoot() function multiple times.
Set special source data if source is fishing loot.

Similar to when a source is an opening source, when fishing, certain
information, like the source name, is not available.  When the current loot
source is fishing loot, set the source's name to "Fishing", set the GUID, and
set the mouseover time to be the current time.
Do not handle mouseover if no GUID was obtained.
Added index numbers to source data.

Makes it easier to reference specific values in other locations.
Added methods to get attributes and calc entropy.

The attributes are for performing an ID3 algorithm to ultimately create
a decision tree.
Added method to split sources on an attribute.
Do not add probability if counts are zero.

If either the number of sources in a split or the number of sources in
total is zero, it leads to getting invalid values in the final count.
Do not print out number of pos and neg samples.

In the LootGain_Entropy method.
Added method to compute information gain.
Updated test method to use information gain method.
Created method LootGain_DivideSourcesOnHavingItem.

Creates a split of items based on whether the source has the specified
item in its loot table.
Find best attribute to split on and perform split.

This update to the test method ultimately returns percentages on
obtaining an item, potentially specified as an argument, based on the
split which has the highest information gain.