tag v4.0.1
d081829e40085032a0873553b4cb226c48a830a2
Kyle Buller <bullerk@gmail.com>
2016-07-19 05:44:53 -0500

Tagging as v4.0.1


--------------------

Kyle Buller:
	- Remove pre-Legion compat.
	- Bump TOCs to 7.0
	- Remove BurningEmbers, DemonicFury, Eclipse, and ShadowOrb modules.
	- LuaTexts: Update ReputationColor to use your reaction colors.
	- Background: Add portrait fallback option.
	- HideBlizzard: Don't error if Blizzard_CompactRaidFrames is disabled.
	- Refactored HideBlizzard module
	- Remove a debug assert for #475
	- Trap Launcher removed in Legion
	- SoulShards: fix PowerColors error
	- Increase the number of nameplate frames from 30 to 40
	- Aura: Hurricane was removed for Legion
Benjamin Staneck:
	- Improvements to group frame hiding (by transitbus)
Kyle Buller:
	- Clean up GroupHeader unit menu handling, too
	- PowerBar: Add an option to use the atlas texture for power types with one (currenty LUNAR_POWER, MAELSTROM, INSANITY, FURY, and PAIN)
	- PowerBar: Only update on the primary power type of the unit and use the color returned from UnitPowerType for special types.
	- Allow animations for AltManaBar and AltPowerBar
	- Remove vehicle/misc power colors from settings and properly reset them
Benjamin Staneck:
	- Remove all of the custom UnitPopup handling, the default is fine
Kyle Buller:
	- To prevent bar flickering in Legion, only set the texture if it's different. Which is needlessly complicated by the fact that :SetTexture sets a .blp extension regardless of the passed path.
	- Rework 3D portrait code. Alpha bug is gone and it doesn't seem like delaying setting up the model is necessary anymore.
	- HealthBar: remove "fast updates" (already uses UNIT_HEALTH_FREQUENT)
	- Aura: fix Legion compat
	- ComboPoints: don't need compat, update on vehicle exit
	- AltManaBar: add compat for Legion
	- AltManaBar: remove Monk handling, hide if you have no mana or are in a vehicle
	Stance of the Fierce Tiger for Mistweaver was changed in 6.0.2
	- Rename DruidManaBar to AltManaBar
	- UNIT_COMBO_POINTS -> UNIT_POWER_FREQUENT
	- Add SetColorTexture compat for Legion
	- Use OnModelLoaded instead of checking the return of :GetModel()
	- Remove Aura filters for removed spells in Legion
	And random whitespace tweaks
	- Fix ReputationBar in Legion
	- Use :SetColorTexture in Background and Portrait
	- Update class powers with compat for Legion
	- UnitIsTapDenied compat for Legion
	- CooldownFrame_Set compat for Legion
	- :SetChange -> :SetFromAlpha/:SetToAlpha
	- Add nameplate unit ids for PitBull4.Utils.GetBestUnitID
	Mostly so :IterateFramesForUnitID doesn't complain in Legion
	- Update LibDogTag repo
	- LuaTexts: Fix updating on GROUP_ROSTER_UPDATE and UNIT_SPELLCAST_SENT. Adding either of these 'protected' events would overwrite their built-in handlers, stopping roster updates or showing the player spell target.
	- Use LOCALIZED_CLASS_NAMES for short class keys ..and sort the _abbrev tables by key
	- Update ShortClass and ShortRace entries
Benjamin Staneck:
	- Balance Druid Astral Power module for 7.0
	- Enhancement and Elemental Shaman Maelstrom module for 7.0
	- Shadow Priest Insanity Module for 7.0
Kyle Buller:
	- Force (another) group header update after being created on init Ticket #1108
Benjamin Staneck:
	- add ice nova to mage debuffs
Kyle Buller:
	- Don't unregister UNIT_NAME_UPDATE on group headers
	- add LuaTexts Classification and ShortClassification tags for minus and trivial units
Benjamin Staneck:
	- remove Aspect of the Fox and Amplify Magic from aura filters. They are gone. RIP.
	- Update TOC for Patch 6.2
Kyle Buller:
	- remove cooldown alpha hooks, was fixed in 6.1
Benjamin Staneck:
	- more indentation fixes
Kyle Buller:
	- add WordWrap() for LuaText to enable multi-line texts
Benjamin Staneck:
	- fix indenting
	- add Hand of Gul'dan back to Warlock debuffs
Kyle Buller:
	- Update Priest and Warlock aura filters
	- Add "Boss debuff" aura filter
	- disable word wrapping on font string controls (6.1 fix)
	- disable word wrapping on font string controls (6.1 fix)
Benjamin Staneck:
	- Alabaster Shield was removed in 6.1
	- Update TOC for Patch 6.1
Shefki:
	- Add Clarity of Will to Priest friend buff filter.
	- Fix arrow/diamond graphic on the Eclipse indicator.
	- Eclipse: Fix icons for lunar/solar peaks, Blizzard changed the spell ids and then didn't bother to update their own constants.
	- Fix weapon enchant display in Aura module (mostly fishing lures now).
Kyle Buller:
	- Remove the promoted restriction for Ready Check Icon
	- Auras: update Paladin filters
	- Aura: update Death Knight filters
	- Aura: update Warrior filters
	- Aura: update Mage filters
	- Aura: update Hunter filters
	- Aura: update Death Knight in "My class can purge" meta
	- Aura: add Death Knight and Warrior purge checks and fix Druid dispel checks
	- Aura: add Rejuvenation (Germination) to Druid friend buffs
	- Chi: increase max possible chi to 6
	- make sure BarModule:UpdateFrame is only returning a boolean
	- Aura: set the swipe color on update to also update the effective alpha
	- Aura: readd the unchanged check before setting the cooldown to minimize flickering
	- FaderModule: correct the Aura module check so the alpha is updated again
	- Anchor indicators to the bar directly unless there is an icon set, in which case anchor to the fg/bg texture as done previously. Also update the layout when setting an icon to make sure textures are corrected on always shown bars. Hopefully fixes #1076 once and for all.
	- Aura: update Priest filtered spell (Echo of Light, Power Infusion, Power Word: Solace, Spectral Guise, Void Tendril)
	- FaderModule: don't error if the Aura module isn't found and update comments to reference ticket 1084
	- Aura: updated GetWeaponEnchantInfo() returns
	- Totem: remove Death Knights
	- Workaround the alpha bug in cooldown swipes
	- protect against enemy frames not having a unit set yet
	- ComboPoints: allow the indicator on the player frame
	- remove 6.0 compat code
	- fix module loading on demand from options
Shefki:
	- Fix the load guards to work with 6.0
	- Revert "start updating for WoD! remove the duplicate (lod) addon check from modules (git users will need to remove standalone module addons)"
	This reverts commit 87628b87079343f9ee7790e105ccbf1b407263a1.
Benjamin Staneck:
	- more aura filter cleanup
Kyle Buller:
	- RangeFader: player is always in range
	- clean up Aura filters
	- fix text not showing on full bars (again)
Benjamin Staneck:
	- TOC Update
Kyle Buller:
	- silence errors from an enemy group header having children but no settings
	- update the container size on orb changes
Benjamin Staneck:
	- Actually hook up the function
	- There can be 5 shadow orbs in WoD
Kyle Buller:
	- default suppress_occ to off for auras (no change in previous behavior)
	- fix GetMobIDFromGuid and remove some guid debug
	- option to display the unit's 3D portrait as the background
	- simplify suppress_ooc updating
	- add click-through option for resource indicators
	- hard embed LibDataBroker-1.1 and assume optdep loading isn't broken
	- update "Druid mana" LuaTexts on UNIT_DISPLAYPOWER
	- use UNIT_POWER_FREQUENT instead of UNIT_POWER
	- Totems: tweak options
	- Totems: update noCooldownCount on option change
	- Aura: add an option to disable OmniCC et al. by setting noCooldownCount
	- WoD auras: hide the default cooldown text and fix the cooldown spiral
	- upvalue EPSILON in a few spots
	- Quick fix for text anchored to the side of a status bar side not showing when the bar is full/empty
	- fix module options in WoD
	- Aura: Might of Ursoc removed in WoD
	- remove some old compat code from HideBlizzard
	- Revert "WoD compat with checking if modules are loadable"
	This reverts commit bf8f6575394c939959141882f26f47524e31b6d9.
	- WoD compat with checking if modules are loadable
	- fix more leaked globals/typos
	- fix menu for raid units
	- Aura: first pass! remove mop compat, add wod compat (no new spells)
	- Border: fix leaked globals
	- remove some leftover mop compat
	- wod compat for guids
	- start updating for WoD! remove the duplicate (lod) addon check from modules (git users will need to remove standalone module addons)
	- rename PositionMembers method to ConfigureChildren remove unneeded _ignore attr fix another frame numbering inconsistency
	- remove the work-around code from when togglemenu didn't work on raid units
	- simplify Modules/RoleIcon
	- update GroupHeader:ApplyConfigModeState() to reflect current SecureGroupHeader_Update
	- don't need a nameList to filter by MAINTANK
	- groupBy ASSIGNEDROLE not ROLE
	- remove oRA2 and CTRA support
	- allow changing the role sort order when grouping by role
	- fix some leaked globals
	- add grouping (sorting) and filtering by role
	- tabs -> spaces for OnAttributeChanged snippet
	- keep frame index consistant
	- refactor enemy groups init
	- don't force :Update in the target frame OnUpdate
	- poll for updates on target frames
	- check that the unit exists to avoid flashing the config mode text before the frame hides
	- fix var names
	- pull the header event function out, too
	- refactor registering updating events add polling for tot frames
	- Revert "disable enemy tot unit groups"
	This reverts commit aa381821a960fdac3b2f1d65edaad2f0a2a71a3b.
	- update from events for arenapet and arenapettarget
	- disable enemy tot unit groups
	- don't try to update frames when the group is disabled
	- update enemy target frames on UNIT_TARGET and move UNIT_TARGETABLE_CHANGED and ARENA_OPPONENT_UPDATE back to unit events
	- typo
	- force a GUID update for button unit events, too
	- force a GUID update on enemy group update events
	- set frames as mouse disabled on creation so they're properly registered with clique
Shefki:
	- Factor out some common code.
	Conflicts:
		Options/Units.lua
	- Make a variable name be less ambigious.
	- Convert a line into an if/else block since it feels a little long.
	- Switch some variable names from camel case.
Kyle Buller:
	- remove the ArenaSpecIcon module for now
	- CastBar: force an info refresh on IEEU
	- go back to using unit events and register UNIT_PET for arenapet
	- whitespace
Shefki:
	- This commit should fully fix the problems people have been having with SetFont() errors.  If the font returned from GetFont is nil then use our cached font and size.  Size whenever font is nil will be an uninitialized value and so the existing fix would still throw errors when the size ended up being less than or equal to 0.
	- It doesn't make sense to call GetFont on a new FontString.  The flags should not be preserved, so just set the font and size and leave the flags as "".  The AddFontString call later will set the flags properly. If the font string already exists then you want to preserve the flags.
	- Remove some values I set to help debugging ticket #1050.
	- Remove the spell icon feature from weapon enchants.  This causes problems when the spell icon isn't cached before entering combat and isn't very useful since almost all temporary weapon enchants have been removed from the game.
	- This commit should fully fix the problems people have been having with SetFont() errors.  If the font returned from GetFont is nil then use our cached font and size.  Size whenever font is nil will be an uninitialized value and so the existing fix would still throw errors when the size ended up being less than or equal to 0.
	- It doesn't make sense to call GetFont on a new FontString.  The flags should not be preserved, so just set the font and size and leave the flags as "".  The AddFontString call later will set the flags properly. If the font string already exists then you want to preserve the flags.
	- Fix some typos that were fixed on nebula1169's branch.
	- Remove some values I set to help debugging ticket #1050.
Kyle Buller:
	- fix a typo
	- full update on UNIT_NAME_UPDATE and ARENA_OPPONENT_UPDATE instead of per frame unit matched updates to try and get target frames to update better
	- try and get frames registered with Clique
Shefki:
	- Hopefully avoid the SetFont errors for sure now assuming that the problem is that GetFont() doesn't work immediately after a SetFont() while the game is still loading in.
	- Missed wrapping a geterrorhandler() in pcall().
	- Protect against Blizzard's error handler throwing an error, which is why the protection code didn't allow the frames to work even when the SetFont error was happening.
	- Stash the DEFAULT_FONT and DEFAULT_FONT_SIZE so I can get people having the font problem to show me what's being stored.
	- Wrap the SetFont and SetAlpha calls in pcalls() which should prevent errors with them from breaking frames entirely.
	- Make the Vengeance fix backwards compatible.
Benjamin Staneck:
	- use a different ID for vengeance that works in 5.4
Shefki:
	- Remove unnecessary constants that I added on accident.
	- Hopefully stop some rare errors in LuaTexts about SetFont.
	- Bump TOC for 5.4
Kyle Buller:
	- move UNIT_TARGETABLE_CHANGED back to the header
Kevin Ballard:
	- Disable ComboPoints module when appropriate
	Hide the combo point indicator for any toon that isn't either a rogue,
	or a druid in cat form.
	
	If the user has 1+ combo points for some reason (e.g. Malygos fight
	vehicles) when their class doesn't use them, show the indicator
	regardless.
Kyle Buller:
	- add arenapet default name
	- fix NORMAL_UNITS boss entries
	- move ARENA_OPPONENT_UPDATE to a unit event on the member frame
	- don't show the solo "show when" option for the arena groups
	- rename function
	- don't need to set frame.unit
	- update unit events on sort changes
	- in config mode, use the frame directly instead of the childN attribute
Shefki:
	- Removed disabled entry in Highlight module options setup that does nothing.
Kyle Buller:
	- use RegisterUnitEvent for some UNIT_ events on frames
Benjamin Staneck:
	- cache player level before OnEnable()
	- fixes for running embedded modules
Kyle Buller:
	- fix ArenaSpecIcon
	- fix HideBlizzard module
	- fix another merge fail
Shefki:
	- Fix a long standing bug in ComboPoints where the icons changed size based on other settings.  Without the new support for a background this never showed up except in vertical mode, however in vertical mode the icons would get smaller as more points were earned.  With the new background horizontal mode icons would be smaller when the background was enabled.
	Players using vertical mode may need to adjust the size of the
	ComboPoints smaller, now that the bug has been fixed and the icons are
	displaying at the configured size.
	- Fix issue with Eridius' patch that breaks vertical mode without backgrounds.
	- Apply Eridius' background for Combo Points patch.
Kyle Buller:
	- fix merge fail
	- fix merge fail
Shefki:
	- Missed adding BattlePet to the embeded modules list.
	- Fix missing modules from the embedded module list.
	- Fix the PvPIcon module when used with an unaligned Pandaren.  This was breaking config mode for those characters.
Benjamin Staneck:
	- lets let the checkout copy load modules, too.
Shefki:
	- Revert "apply combopoint patch by Eridius (ticket 1046)"  See my reasoning on the ticket.
	This reverts commit 267d2d9b7734d4c6aa7f2113c5782d6e115276eb.
Benjamin Staneck:
	- apply combopoint patch by Eridius (ticket 1046)
Cameron Kenneth Knight:
	- squash the history so packager doesn't freak out
Shefki:
	- Fix the PvPIcon module when used with an unaligned Pandaren.  This was breaking config mode for those characters.
Benjamin Staneck:
	- lets let the checkout copy load modules, too.
Kyle Buller:
	- update on UNIT_TARGET
	- update frames on OnAttributeChanged
	- remove state watching from arena frames for now
	- properly set header.show_solo for boss frames
	- create child frames inheriting the Clique template
	- remove some moved code (merge fail)
	- fix creating the arena group from a disabled header
	- register UNIT_NAME_UPDATE
	- always register OnAttributeChanged on the header incase the super_group changes
	- use the UPDATE_BATTLEFIELD_STATUS event to beginning watching for when to hide arena frames
	- fix hiding arena frames
	- drop class icon indicator from arena module
	- enable arena pets, but hide the option to remove gaps fix switching between real and fake group header
	- fix showing arena frames in config mode while switching unit group
	- disable arenapet* frames
	- handle switching between SecureGroupHeader and the fake header
	- nil check unit
	- tweak arena state-unitexists
	- apparently we can't use attributes that start with _ to skip OnAttributeChanged
	- tweaks
	- fix updating boss frames on unit changes
	- Add arena class and spec indicators
	- arena wacky frames don't need their state watched
	- Fix force showing
	- add arena config mode label
	- trim whitespace
	- Better arena frames
	- fix initial group creation showing in config
	- modify group header to allow boss frames
Shefki:
	- Revert "apply combopoint patch by Eridius (ticket 1046)"  See my reasoning on the ticket.
	This reverts commit 267d2d9b7734d4c6aa7f2113c5782d6e115276eb.
Benjamin Staneck:
	- apply combopoint patch by Eridius (ticket 1046)
Shefki:
	- Bump TOC for 5.3
Benjamin Staneck:
	- fix typo in the LuaTexts module
Shefki:
	- Oops duplicated a line unintentionally.
	- Add support for warlock green fire to the BurningEmbers module.
	- Set the extra2 value to 0 for other bar modules (prevents ghost extra values from showing up when bars get reused).
	- Add support for showing absorbs in the VisualHeal module.
	- Add a 2nd extra bar to BetterStatusBar.
	- Return to old style menus for raid frames since Blizzard has a bug in the new menu system.  Includes a somewhat ugly hack around Clique forcing the use of the new menu system.
	- Display friendships properly in the ReptutationBar & LuaTexts.
	- Remove pre-5.1 compatibility from Aura Filters.
	- Remove pre 5.1 support from Chi module.
	- Remove pre-mop compatibility from UnitFrame.lua
	Conflicts:
	
		UnitFrame.lua
	- Remove pre-mop compatibility in ThreatBar module.
	- Remove support for old guid format.
	- Remove check for MoP from ShadowOrbs module.
	- Remove pre-mop compatibility from ReadyCheckIcon module.
	- Remove pre-mop compatibility from RangeFader module.
	- Remove pre-mop compatibility from RaidTargetIcon module.
	- Remove pre-mop compatibility from MasterLooterIcon module.
	- Remove pre-mop compatibility from the LuaTexts script environment.
	- Remove pre-mop compatibility from LuaTexts module.
	- Remove pre-mop compatibility from LeaderIcon module.
	- Remove pre-mop compatability from HolyPower module.
	- Remove pre-mop compatability from HealthBar module.
	- Remove pre-mop support from Main.lua
	- Remove pre-mop support from Eclipse module.
	- Remove pre-mop support for raid/party events from HideBlizzard module.
	- Remove pre-mop code to support ranged slot.
	- Enable Totems module for Mages with Rune of Power.
	- Remove pre-MOP compat from Totem module.
	- Just stop using MAX_ARENA_TEAM_MEMBERS entirely, it wasn't really the right constant anyway.
	- Switch to using the new 5.2 based popup menu system.  This will allow the SetFocus/ClearFocus, Dismiss etc...  However, this also does remove the feature to add Ready and Role Check menus for group leaders.
	- Handle auras that have been removed in 5.2
	- Missed removing an end.
	- Finish removing pre-MOP compat from the Aura Filters.
	- Fix a typo and a column indentation.
	- Remove some parens that aren't really needed.
Benjamin Staneck:
	- I'm in your toc, updating your Interface Version to 50200.
	- more cleaning
	- I like commas
	- more spring cleaning in the filter area
	- remove some old compat code. I want to cry.
	- exclude some dev only files/folders from being packaged
	- fix the attempt to call field 'GetBestUnitID' (a nil value) error on 5.2.
Shefki:
	- Fix the "OnEvent" errors related to animations.
	Blizzard apparently made Animations and AnimationGroups no longer have
	OnEvent scripts.  So stop trying to clear them.
	- Add Tooth and Claw to Druid Self Buff Aura Filter in 5.1.x
	- Put LibDualSpec back to latest tag rather than alpha/beta release since it has a 5.x stable release now.
	- TOC bump for 5.1.x
	- Backwards compatability for 5.0.x in Chi module.
	- Remove Aspect of the Fox with WoW 5.1 from the Aura Filters.
Benjamin Staneck:
	- SPELL_POWER_CHI is the new SPELL_POWER_LIGHT_FORCE, no backwards compat, have fun Shefki :D
Shefki:
	- Give the Rage of Anger a red power bar.
	Specifically map POWER_TYPE_RED_POWER to RAGE since they both translate
	to Rage.
	- Change the default to not hide Blizzard's AltPowerBar.
	If you want it hidden you'll have to toggle it back hidden by doing:
	/pb, Modules, Hide Blizzard, check Alternate power.
	- Fix class setting with Monks in the Portrait module.
	- Fix issue with PVP flagged Pandarans that have a Neutral faction.
	- Fix Ticket #1005, Leader Icon does not hide after leaving a group.
	- LuaTexts: DruidForm(): Fix Moonkin and Flight Form detection.
	- Fix a typo
	- Flip some if then elseif blocks around so the most common conditions come first.
	- The model frame alpha bug applies to the dress up model frame as well.
	- Fix Ticket #600: Performance issue with pirate day easter egg.
	I just disabled the dress up model usage in combat.  It seems to avoid
	the problem with lag due to the use of that model since the lag is
	caused by the creation of new models.  If you're raiding or doing a
	dungeon your group is still going to show as pirates since their
	portrait will get drawn out of combat generally.
	- Fix flickering Portraits on some frames.
	The original fix that I'd made for the issue that happened after a scale
	or shape change was wrong.  The real problem was in our anchor code.  So
	I've reverted that change here.  That hack was ultimately causing the
	flashing since the effective scale code was triggering on some frames
	everytime.
	
	The real problem behind the scale/shape change was that the layout code
	assumed that GetHeight/Width returned the value passed to
	SetHeight/Width after a ClearAllPoints, which it does not if the
	previous anchors changed the size of the frame.  The fix for this is to
	set a temporary bogus anchor to allow access to these values.  I'm not
	100% thrilled with the solution to this, but I think the alternatives
	get even more ugly.  The layout code does run in combat, so I'll likely
	review this change again.
	- Oops left some debug code turned on that I'd uncommented to diagnose the sound issue.
	- Fix sounds for totem destruction.
	No idea why this code was looking for haveTotem as true for totems that
	had been removed.  Also I see no reason to iterate frames since the
	Activate/Deactivate functions do that.  I'm guessing this was added
	to support MyGetTotemInfo which I also see no reason to use.  Should
	make the module more efficient.
	- Add Fel Energy power type.
	- Allow localization for Latin American Spanish, Italian, and Brazilian Portuguese.
	- Fix vanishing layouts and groups.
	If layouts or groups were left fully at their defaults they would
	disappear on logout or reload.  This resolves this by adding an
	exists flag to their config entries.  There is now a config_version
	flag in the config DB and a functional process to upgrade the config.
	
	Conflicts:
	
		Main.lua
	- Fix the translation for the Highlight module texture description.
	- Remove a number of table lookups that were unnecessary on loading.
	- Allow the texture of the Highlight module to be changed.  Fixes ticket #1000
	This uses the background textures from SharedMedia.  I added two default
	Blizzard textures to the background options since they're useful.
	
	QuestTitleHighlight is the current default and has a yellow tint to it.
	QuestLogTitleHighlight is similar but has no tint.
	- Fix bug in double_fill_table function that wasn't really hurting anything.
	- Fix the error about Totem slot must be in the range of 1 to 4.
	Appears that when zoning between cross realm zones and non-cross realm
	zones we get a PLAYER_TOTEM_UPDATE for slot 5 that doesn't exist.  It's
	a bug on Blizzard's end but we can workaround it by ignoring the event.
	
	Reported to Blizzard here:
	http://us.battle.net/wow/en/forum/topic/6490460422#1
	- Disable vehicle swaps when they shouldn't happen, since the game has specified not to.
	Note: This is a complete fix the secure code has a bug and click on the
	unit will still target the wrong unit.  Bug has been reported to
	Blizzard.  Generally this shouldn't be a playability issue since click
	on the player frame shouldn't be necessary during these events/quests.
	- Fix issue where you only see the top of the Portrait in 3D mode.
	Looks like the model frame no longer sets the position back to the
	default when changing models.
	- Cleanup some unnecessary global variables.
	PitBull4 should not be setting any global variable other than the
	PitBull4 table, the SLASH_PITBULLFOUR* global variables and
	UI_DROPDOWNMENU_MENU_LEVEL as necessary for interfacing with Blizzard's
	API.
	- Change the default color for the AltPowerBar to match what Blizzard uses in their raid frames.
	- Update the logic for the AltPowerBar to avoid showing it when the game has flagged not to.
	- Fix an error in the AlterPowerBar module that would make it show incorrect info for alternate powers where the minimum wasn't zero.
	- Fix the typo in the AltPowerBar that someone I reverted again. Oops.
	- Implement aura filters fully for Monk.
	- Refix party and raid config mode after adding hiding of frames for pet battles.
	When I yanked the old ForceShow code I forgot to leave it in place for
	the Group frames.
	- Handling hiding the frames during pet battles.
	This also lays the ground work for user configured macro conditionals
	for hiding/showing the frames.
	- Prevent an error when the fader module starts trying to update before the layoutdb is loaded for the frame.
	- Remove some config options that don't do anything in the SoulShard module.
	- Fix issue that would break ShadowOrb module after changing profiles.
	Same issue as HolyPower module had.
	- Fix problem with Chi module not updating after a profile change.
	Same problem as HolyPower module.
	- Fix problem with HolyPower module no long updating correctly after changing profiles.
	In particular it would update before the profile had been completely loaded and then the color would be stuck on black.
	- Show Totem module for DK's without a spec picked.
	- Improve the graphics for the Monk Chi module.
	- Arcane Charge shows up as a debuff, move under the self debuffs filter.
	- Refresh frame layouts after the group headers are done on profile changes.  Should prevent some odd edge cases with changing profiles with different configs on the same group header.
	- Fix some places where we could end up comparing a number with nil.
	- Fix background on the BurningEmbers module when set to vertical.
	- Fix the background on the HolyPower module when set to vertical.
	- Fix two typos.  One leaked a global variable.  Both prevented LuaTexts from knowing if a spell was interruptible or not.
	- Fix a leak of the global variable _ in Portrait module, which also breaks the Glyph UI due to a Blizzard bug.
	Only occured when class was the portrait type or fallback type.
	- Fix a typo that leaked a global variable and that actually broke the OnUpdate throttling for the Aura module.
	- Fix leak of player_in_group variable into global namespace.
	Another case of me testing and forgetting to put back to local after
	modifying for 5.0.
	- Fix master_looter_guid leaking into the global namespace.
	I removed the local while testing this and I forgot to put it back when
	I finished updating the module for 5.0.
	- Add Rapid Teleportation to Mage self buffs.
	- Workaround a bug in the SecureGroupHeaders where anchors are not set properly. Shows up as frames being sized incorrectly, may be seen when switching between configurations or profiles with different growth directions.
	Problem here is that SecureGroupHeaders configureChildren function does
	not ClearallPoints on frames that exist and are in use.  So changing the
	growth direction of a used frame breaks the children.
	- Update HideBlizzard module for 5.0.4 (only would have created problems if you were toggling them on and off without reloading).
	Removed some support for pre 4.3 WoW.
	- Fix a typo in the name of the Mage enemy debuffs filter.
	- Expose the Mage and Hunter friend debuffs filters that were added but not enabled in the default filters.
	- Fix typo in DemonicFury module description.
	- TOC Bump for 5.0.4
	- Some more pre-Cataclysm aura filters I missed removing.
	- Update aura filters for Warrior in MoP.
	Remove pre-Cataclysm support.
	- Update aura filters for Warlock in MoP.
	Remove pre-Cataclysm support.
	- Update aura filters for Shaman in MoP.
	Remove pre-Cataclysm support.
	- Adjust aura filters for Rogue in MoP.
	Remove pre-Cataclysm support.
	- Update aura filters for Priest in MoP.
	Remove pre-Cataclysm support.
	- Fix HolyPower module to properly work with Boundless Convinction in 5.x.
	- Update Aura filters for Paladin.
	Remove pre-Cataclysm support.
	- Mage aura filters for MoP.
	Also removes pre-Cataclysm support.
	- Update Hunter aura filters for MoP.
	Remove support for pre-Cataclysm as well.
	- Major rework of Druid filters for MoP.
	Removes support for pre Cata as well.
	- Make LuaTexts handle the switch to GROUP_ROSTER_UPDATE event transparently for users.
	- Remove some pre-Cataclysm compat code that's way obsolete for all regions.
	- Fill in the buffs/debuffs from Hunter Pets.
	Filled in from Petopia topic here:
	http://forums.wow-petopia.com/viewtopic.php?f=39&t=18086
	- Adjust the indentation in Filter.lua for 6 digit spell ids.
	- Still Water from Hunter pets is new for MoP, flag it as such.
	- Update Aura Filters for major important Buffs/Debuffs
	Thanks to WowHead for throwing this together:
	http://www.wowhead.com/guide=1100
	- Better graphics for ShadowOrb module.
Benjamin Staneck:
	- Use the real Shadow Orbs icon and delete the dummy file.
Shefki:
	- First pass at Death Knight auras for MoP.
	Only 10 more classes to do...
	- Enable Totem module for Monks. Don't show totem frame except on specs that use it for classes other than Shaman.
	- Workaround a bug in the Blizzard model frame that doesn't properly update the frame after the scale or shape changes.
	- Enable totem module for Druids and Deathknights.
	This probably needs some more work to make it less confusing, but it at
	least exposes the functionality to players.
	- Fix Male Worgen portraits and probably a lot of other models that were coded weird.
	Switch to using SetPortraitZoom which seems to work more often than SetCamera did.
	- Fix typo causing GetSpellinfo error (Paladins, MoP)
	- Fix bug #946 - Debuffs for Rogue and Paladin Seal of Truth missing.
	- Fix bug #965 - Missing auras for Shaman.
	- Remove Find Treasure from Dwarfs.
	- Fix a typo in the purge logic for Warrior.
	- Update dispel logic for MoP and split offensive dispels into new purge logic. New highlight filter "Highlight: purgeable by me buffs" added to default config.
	- Add Worgen, Goblin and Pandaren to Aura filters.
	Apparently I forgot to come back and do Worgen and Goblin in Cataclysm.
	Oops!
	- Add dispelable logic for Monk.
	- Add Monk to the Aura filters.
	- Fix a comment.
	- Rename a variable that happens to be the same as a function.
	Wasn't hurting anything but I noticed it while figuring out why the
	module wasn't working.
	- Fix a long standing typo in the AltPowerBar module that made it not work correctly.
	- Update RangeFader to support MoP and remove some dead code for pre-4.x.
	- Tired of fighting the launcher and its perms.  Just give in and commit them to git.
	- Put an end to the warnings about unknown auras in MoP.
	Filters still need work but this should stop the annoying spam on login.
	- Remove player level check from Chi module.  Blizzard removed their code and the constant.
	- Remove a line that was unnecessary from the BurningEmbers code.
Benjamin Staneck:
	- We're talking embers here, not holy powerz
	- Don't load on live
Shefki:
	- Forgot to add BattlePet module to .pkgmeta.
	- Add BattlePet module for showing an icon for the battle pet type in MoP.
	- Add support for community tapped mobs in MoP.
	- Support up to 4 embers like Blizzard's code does in the Burning Embers module.
	- Update .pkgmeta for BurningEmbers and DemonicFury modules.
	- Add Burning Embers module for MoP.
	- Update SoulShards module for MoP.
	- Add Demonic fury module for MoP.
	- Fix that I unintentially disabled ranged weapon enchants on live.
	- Fix Bug #990 GetInventorySlotInfo error on MoP Beta.
Benjamin Staneck:
	- Revert "remove ranged slot"
	This reverts commit ec2db64e689e6a6a08b1aef9c03873657734c92f.
	
	forgot backwards comp
	- remove ranged slot
Shefki:
	- Use the variable I meant not what I typed.
	- Avoid issues in HealthBar and PowerBar where UnitGUID returns nil inside an event.
	- Fix a possible error when a unit goes away as UNIT_AURA fires.
	- Fix case on Chi module description to match translation phrase.
	- Really should change the author entry on things I wrote.
	- Add ShadowOrbs module for Priest's in MoP.
Benjamin Staneck:
	- fix ticket #947
Shefki:
	- Update LuaTexts to show the proper info for battle pets in MoP.
	- Remove some pre-wrath compat code from LuaTexts.
	- Fix RaidTargetIcon module for MoP.
	- Remove debug code from Chi module I forgot to remove.
	- Add Chi module to pkgmeta so it'll get packaged.
	- Add a Chi module for Monks.
	Still using the icon from the the Holy Power module for now.
	- Update DruidManaBar module to work for Mistweaver Monks in MoP.
	The module name isn't fully chaning to prevent breaking things for
	existing druid users.  But it will display as the Druid/Monk mana bar
	modules on the AddOns screen and in game.
	- Fix HolyPower module for MoP (really Blizzard changing names of constants)
	- Fix master guid refresh event for MoP.
	- Fix MasterLooterIcon for MoP.
	- Fix ReadyCheckIcon module for MoP.
	- Eclipse module compatability with MoP.
	- Remove a change I inadvertantly commited to the acceptable classifications for ThreatBar to work with my private branch for testing purposes.
	- Use alpha releases of Ace3, LibBanzai and LibDualSpec for MoP compatability.
	- Add a translation for Monks.
	- MoP Fixes: Commit the changes roughly based on daf2's zip file.
	- Build the full sorting table for the group otherwise filtered frames won't work. (e.g. filtered by raid group)
	I had an hackish way of doing it in there before that was a little
	faster but it can't work now that I fixed the sorting.
	- Remove debug code that whines about things being wrong when they aren't since I've made the code much smarter than this auto-detection can deal with.
	- Sorting with a partial raid in config mode is now consistent with how you'd expect it to behave.
	Unfilled slots are always considered to be towards the end of the sort
	(higher index, higher group number, a class that is last on the sort
	order, and a name that's alphabetically last).
	- Fix duplicates frames for real players in config mode when in a partially filled raid with sorting by group descending.
	- Fix an error with group sorted raid frames.
	- Rename GroupHeader:AssignFakeUnitIDs to GroupHeader:ApplyConfigModeState.
	No functional change just make the code make more sense now that
	function does a lot more than just set unit ids.
	- Fix Bug #864 - Group Config Mode Doesn't Work.
	Major refactoring of the way config mode works.  It should be faster,
	though it will still take some time if you go straight into raid40 mode
	without any of the frames existing.  However, subsequent changes in
	config mode states after that should be pretty quick.  One side
	effect of this is that the farmes won't immediately have the fake
	units assigned but will pick them up very shortly after.
	
	(Note to self: This commit differs from the anchor branch commit by the
	removal of changes to the new/remove config options for units and by the
	removal of logic in SwapGroupTemplate to check that the group is a pet
	group)
	Conflicts:
		GroupHeader.lua
		Options/Units.lua
	- Fix previous patch to put variables inside the function and make _ be local.
	- Remove an unused parameter on get_group_roster_info().
	- Check frame.unit is set before using it in PvPIcon module.
	- Switch to using the proper constants for a couple hardcoded values.
	(Note to self: Difference here between anchors branch and master in
	RefixSizeAndPosition)
	Conflicts:
		GroupHeader.lua
	- Change the GetNumTalentTabs fix to the style I prefer. This style doesn't litter the special code all over the file.
	- Put line endings back to Unix line endings on Filter.lua
	- Fix bug #982 preventing Other filter from catching uncategorized auras.
Benjamin Staneck:
	- GetNumTalentTabs → GetNumSpecializations for MoP
Shefki:
	- Bump TOC files for 4.3
	- Fix bug #976, flaw in Aura layout that shows up as divide by zero in 4.3
	This was arguably always a bug since it makes the layout misbeehave
	on 4.2.  Calculating the size of the aura as inf never really made
	sense.
	- Remove the HappinessIcon module I missed in the last commit.
	- Remove all references to pet Happiness.
	- Rename VisualHeal5 to just VisualHeal.  Remove ManaSpark module.
	- Delete old HealComm based VisualHeal module.
	- Fix divide by error issues with UnitFrameLayout.lua and 4.3.0
	- Fix divide by zero errors for 4.3.0
	- Bump TOC for 4.2
	- Fix Ticket #934, Change to Nourish for range fading for Druids helpful spells.
	- Fix Ticket #943, Pet Happiness is gone with 4.1
	- Fix SetMaxFramerate error in 4.1 when using Animated bars.
	- Full fix to HideBlizzard problems with CompactPartyFrame in 4.1
	Note: The option to hide Party frames will be disabled if you have
	"Use Raid-Style Party Frames" checked in Blizzard Interface Options
	under Unit Frames.  You can control these frames with the Raid checkbox.
	If you want to keep the Raid Manager/Party Members, keep this unchecked
	and use Hide/Show button inside the Manager.
	
	I know this is a step back in features but Blizzard has reparented the
	CompactPartyFrame to this RaidManager and it's a pain to reparent
	something like this to avoid that.
	- Bump TOC for 4.1
	- This should fix the errors about the CompactPartyFrame in 4.1
	- Sense Demons went away with 4.0.1 but didn't notice it.
	- Surge of Light only has one rank and rank 2's spell id became rank 1.
	- Fix Portrait module error with 4.1. Ticket #940.
	- Fix Ticket #868.  Party Names/Classes don't match.
	When group makeup changes the frames don't necessarily hide anymore as
	of 4.0.x.  In the past we picked up our Update notices from OnShow.
	But since the frames don't Hide and then Show again this no longer
	works.  So we need to Update when the unit changes in
	OnAttributeChanged.
	- LuaTexts shouldn't error if AddFontString is called on a frame with no unit.
	Very rare error.
	- Ignore clicks on temporary weapon enchant auras.
	Canceling temp weapon enchants is still protected in and out of combat.
	- Fix AltPowerBar module so it actually will package.
	- Add AltPowerBar module and add support for it in various other places.
	- Allow right clicking buffs off out of combat in 4.0.6.
	- Update Hide Blizzard module to account for changes as to when party, raid and compact-party frames are shown.
	Hide party will now hide both normal and compact party frames.
	
	Hide raid will not show the raid frames/manager when Blizzard wouldn't
	ordinarly have shown them if you toggle it off.
	- Change text to reflect 4.0.6.
	- Aura filers: Drain Mana is removed in 4.0.6.
	- Stop Raid Manager from reshowing after zoning in 4.0.6.
	- Fix Ticket #915: Errors on Omnitron council (boss5 error)
	We really shouldn't error like this in release code.  For that matter,
	Blizzard shouldn't be generating events for bogus unit ids that aren't
	valid.
	- Remove duplicate NewLocale that is unnecessary.
	- Fix a very rare error in the Eclipse module.
	Apparently GetEclipseDirection() can return nil in very rare situations.
	- Fix right click menu never working on group frames created in combat.
	Note: Due to an API limitation the right click menu won't start working
	until you leave combat.  This is due to the lack of RegisterForClicks.
	I've asked for it to be added and hopefully it'll make it into 4.1
	- Fix problems with pet group frames created in combat showing owner not pet.
	I forgot to set the attribute that I used in the restricted environment
	to set the unitsuffix on the frames when they're created.
	- Ticket #888, Taint problem with group frames created in combat.
	- Forgot to add localizations to Debug.lua
	- Ticket #891: ShortRace support for Goblin and Worgen races.
	- Fix showing the player's pets experience bar when on a vehicle that is not the same level as the player.
	- Ticket #876: Out of Phase indicator icon.
	Note: This may not work perfectly, due to a Blizzard bug.  If the phase
	transitions happens while you are too far away from the group member
	then no event will fire to update the change.
	- Disable group config modes for 4.0.3a as well for now.
	- Ticket #878, Fix a typo in the code.
	- Remove some changes I didn't mean to commit.
	- Temporarily disable config mode for groups till I can fix it.
	- Remove workaround for beta that isn't necessary anymore.
	- Remove an unused local variable.
	- Ticket #865: Group frames not updating properly when group changes.
	Blizzard changed the behavior of the unit watch state handlers.  The
	OnShow function that used to "notify" us when units changed isn't called
	if the frame is already shown.
	- Fix a bug in IsDND(unit) helper function for LuaTexts.
	- Workaround for the problem with Aura Cooldown spinners flashing.
	- When changing Unit group on Groups change is_wacky if necessary.
	This should fix groups not working properly if you say duplicate the
	Party frame and then set it to Party targets (a set of units we don't
	receive events for).  Or vice versa (should prevent weird flickering)
	when you take a Group that believes it is wacky and convert it to a
	non-wacky set of units.  The issue was only temporary until you
	reloaded but it did happen.
	
	Yes my friends, PitBull4 bugs have gotten this edge casey.
	- Allow fast healthbar updates to be disabled per layout.
	- Enable fast health updates.
	- Disable Groups on WoW build 13221 so that profiles will work. For people that don't care about Groups but keep complaining about profiles.
	- Don't load QuestIcon module on 3.x
	- Allow manual input of values outside of slider ranges where reasonable.
	Implementing using softMin and softMax.
	- Forgot to pull in AceEvent mixins for QuestIcon module.
	- Ticket #833: Add support for QuestIcon added with 4.0.x.
	- HolyPower: Limit watching PLAYER_LEVEL_UP to when needed.
	- SoulShards module shouldn't show until level 10 on Warlocks.
	- SoulShards should clear on PLAYER_ENTERING_WORLD.
	- SoulShards module should be using module:Update(frame) not module:UpdateFrame(frame)
	- HolyPower module should only show for Paladins at or above level 9.
	- Ticket #846: HolyPower should clear on PLAYER_ENTERING_WORLD.
	- HolyPower module should be using module:Update(frame) not module:UpdateFrame(frame)
	- Fix problems with AceAddOn upgrades.
	Bad ckknight, you can't just overwite mixins.  If you do when the
	library gets upgraded then your function gets ovewritten.  Espcially
	when your function doesn't even have the same parameters.
	
	Renamed PitBull4:EnableModule to PitBull4:EnableModuleAndSaveState
	as well as PitBull4:DisableModule to PitBull4:DisableModuleAndSaveState.
	- Fix Clique support for AnyDown for Singletons too.
	Last commit only fixed it for Groups.
	- Fix support for Clique's AnyDown support.
	Was broken by the work on click-through frames.  Have to play some games
	to avoid infinite loops by Blizzard bugs.
	- HideBlizzard: Tweak raid hide/show feature.  Defaults to off now.
	Rational for changing the default is as follows.
	
	A lot of people do not use PitBull4 for raid frames.  If they're using
	some other addon it should hide this, not us.  Same reason we currently
	don't have a Raid group already setup.
	
	Additionally, many people were confused by not being able to find the
	Raid Manger.  Since the Raid Manager lets you do set flares and do role
	checks which are not provided anywhere else or in PitBull4, we also
	should not be hiding by default.
	
	People who want to hide only the raid frames and not the manager should
	use the Hide button on the Raid Manager.  If you want both gone then you
	can use the setting under Modules, Hide Blizzard.
	
	This commit also fixes our hiding of the Raid Manager/Frames to
	no longer break the Raid Manager.  It will properly show all the
	features if you are a raid officer if you show it after having it
	hidden.
	
	Finally, this commit makes it so when we do not cause the Raid Manager
	Hide/Show buttons to be out of sync with the actual state of the Raid
	Frames.
	- Apply another workaround for ticket #475.
	- Fix Ticket #803: Animated bars flash when set to Low or Background stratas.
	Turns out Blizzard changed a behavior of AnimationGroups in 4.0.1, they
	now call OnUpdate immediately after Play() is called and GetProgress()
	returns 0 for this call, which caused the errors as the formulas were
	not designed to work for this.
	- Increase search space for temporary weapon enchant spell icon guessing.
	- Ticket #827: Fix temporary weapon enchants for ranged slot.
	Also fixes temporary weapon enchants preview not working in config mode.
	- Fix Battle Shout in the Aura Filter.
	- Ticket #819: Warlock aura filter updates.
	- Eclipse: Add shine animation to the icons when you reach either eclipse.
	- Forgot to fill in some localization values for Eclipse module.
	- Add a default LuaText for Eclipse.
	- Add several features to the Eclipse module.
	a) Supports going vertical.
	b) Supports positioning as a horizontal bar (center).
	c) Supports turning off the icons.
	
	Also fixes a bug with the texture tiling.
	- Call the SetOrientation function on Indicator modules if it exists when they are set to position as a bar.
	- Fix the Blizzard Rune bar to hide properly now that the PlayerFrame hider changed.
	- Fix a logic error that very very rarely will cause a Lua error in HealthBar module.
	UnitIsConnected(unit) will complain if the unit doesn't exist so
	checking for that should happen before UnitIsConnected.  This bug has
	been there since 2009, so probably something changed in UnitIsConnected
	or nobody ever reported it.
	- Update spells in RangeFader for 4.0.x.
	- Use UnitCanAttack to determine enemies so range checking can work on Neutrals.
	- Add menu items for Ready Check and Role Check on self unit popup menu.
	- Remove an XML comment close that was accidentally committed.
	- Fix problems canceling buffs from the Blizzard BuffFrame.
	In particular, we were taining the BuffFrame by tainting the PlayerFrame
	due to touching PlayerFrame.unit and due to the way our HideBlizzard
	module dealt with it.  The unfortunate downside of this is we no
	longer turn off events for the Blizzard PlayerFrame so it is updating
	even though we don't use it. D:
	- Fix problems with click through frames.
	- If you were using Clique singleton click through frames could become
	clickable in combat.  The fix requires a version newer than Clique:
	v40000-1.2.7 (which is the current release version at this time,
	so in order to get the fix you need the alpha build on wowace.com).
	
	- When creating frames in combat for groups with click through turned on
	the frames would be clickable until the next time you left combat.
	This was a limiation of WoW which has been resolved with 4.0.1.
	- Fix Ticket #802: LuaTexts timers weren't cleared on leaving a group.
	Offline, AFK, or Dead party members when you left the group would
	continue to show in that state.
	- Work around a Blizzard bug breaking the transparency of 3d Portraits.
	- Fix Pet Happiness issues.
	Bug in HappinessIcon module, prevented the Cata fix from working, left
	off the unit argument to the UNIT_POWER event.
	
	Missed updating the UNIT_HAPPINESS event to UNIT_POWER for bar coloring.
	- Druids can remove Enrage, silly Shefki not reading Soothe tooltip.
	- Fix detection of NPC IDs for 4.0.1.
	- TOC Bumpage for 4.0.1.
	Yes PitBull4_VisualHeal really does stay at 30300, PitBull4_VisualHeal5
	is for 4.0.1.  Users won't need to worry about this, the loader handles
	this for you.
	- Commit forgotten .pkgmeta and modules.xml for new VisualHeal module.
	- Add support for hiding the new raid frames in 4.0.x.
	- Fix a typo in the Clique support template.
	- Fix a lua error in the VisualHeal5 module.
	- Add support for the built in incoming heals data in 4.0.x.
	This is implemented as a separate module so that LibHealComm will not be
	loaded on 4.0.x.  Unless LibHealComm is installed as a separate addon or
	embedded in another addon it will not be loaded on a 4.0.x client.
	
	Both modules have the same loaded name in PitBull4, so they share the
	same config.
	- Allow StatusBar texture to be configured for Eclipse Module.
	Will follow the default bar texture selection for the layout.
	- Fix LuaTexts for 4.0.x.
	- Fix ManaSpark for 4.0.x.
	- Fix PowerBar for 4.0.x.
	- Fix HappinessIcon for 4.0.x.
	- Fix CombatFader for 4.0.x.
	- Fix DruidManaBar for 4.0.x.
	- Update detection of dispel types for changes to healing classes in 4.0.x.
	- Fix the unknown spells in Aura filters, filters still need work though.
	Druid filters should be up to date, everything else still needs a lot of
	work.
	- Update revamped Clique support to a newer version of the spec.
	Lesson: Always reload the page you loaded 2 days ago with the newest
	spec.
	- Add support for the new revamped cata only Clique.
	- Add Eclipse module to .pkgmeta and modules.xml.
	- Commit the code to deal with Lunar and Solar Power colors.
	Fixes the Eclipse module.
	- Eclipse Module: Initial checkin, still needs some work but it's useable.
	- Fix HideBlizzard to be aware of ConsolidateBuffs and avoid taint in 4.0.x
	- Fix a bug related to switching profiles while in a group.
	Can happen anytime you're switching to a profile with a group that is
	showing to another profile that a group of that name does not exist.
ckknight:
	- Add SoulShards module, for 4.0 Warlock Soul Shards
	- Add HolyPower module, for 4.0 and above
Shefki:
	- Ticket #792, Warlock/Shadow Priest filter fixes.
	- Support Party and Raid frames on Cataclysm.
	- Fix RoleIcon module for Cataclysm.
	- Disable the ability to cancel buffs from within PitBull4 for Cataclysm. Use /cancelaura AuraName if you want to remove buffs now.
	- Detect failure to create groups on Cataclysm Beta and disable group features.
	- Fix LuaTexts error on Cata Beta that prevents Health from showing.
	- Ticket #771: Mage Filers missing Improved Counterspell and Deep Freeze.
	- Remove compat code for pre 3.3.x from Filters and update Priest filters.
	Resolves Ticket #785.
	- Ticket #780: Add Eclipse (Lunar) to druid self buffs
	- Fix typo in previous commit.
	- Fix our usage of the SharedMedia widgets so the previews actually show.
	- Fix an error in the Aura FilterEditor when changing profiles.
	- Really fix the problem with DifficultyColors for LuaTexts.
	- Fix a bug in the defaults that prevented difficulty colors from updating after you leveled.
	UNIT_LEVEL needs to be handled for the player and for the unit on the
	unit frame.
	- Avoid a rare error related to load orders and LibDBIcon-1.0.
	- Style change to use capped variable for library name.
	- Oops forgot to make config mode respect the individual icon configs.
	- Add the ability to disable individual raid target icons per layout.
	- Fix an error when opening a bar providers config tab.
	I'd forgotten that bar providers module isn't in #info-1 but #info-2.
	- Add boss1-4 ass valid boss ids.
	Seems that Blizzard is generating events now for them on the PTR.
	- Fix filename for LibDualSpec-1.0 in embeded installs.
	- Ticket #604: Add support for Dual-spec profile swaps.
	- Missed setting the Highlight frame to the Overlay level.
	- Rework frame levels.  Includes fix for Ticket #743 (Inconsistent Portrait frame level)
	The PlayerModel frame used for 3d Portraits never had its frame level
	set so it was only 1 above the frame (along with bars).  However, 2d
	portraits were set at the same frame level as indicators.  This meant
	people using 3d portraits saw them consistently under indicators (as
	most people probably want) while people using 2d portraits had somewhat
	random behavior.
	
	Additionally, since all the frame levels were only spaced out by 1
	frame, if something needed multiple layers for various reasons then some
	objects would seem to be between parts of some objects and others.  A
	great example of this was 2d portraits and auras.  The 2d Portrait would
	be on top of the Auras but under the texts for them.
	
	This commit reworks the frame levels by spacing them out.  Frame levels
	are layed out as follows (numbers are offsets from the unit frames
	level)
	
	-1 GroupHeader
	0  Unit Frame
	1  Bars
	5 Portrait
	9  Aura
	10 Aura Cooldown
	11 Aura Text
	13 Indicators
	14 Totems CD
	15 Totems Text
	17 TextProvider Overlay
	
	If you've adjusted the frame level of your auras manually you may need
	to adjust them to deal with the new changes since almost everything has
	raised by quite a few frame levels.
	- Fix an error caused by recycling a BetterStatusBar with animations on.
	Prior to this the animation flags were turned off when the control was
	retrieved.  Which led to a bit of a chicken/egg syndrome.  The value
	gets updated during the retrieval process and it thinks the animations
	are turned on so it expects the animation controls to exist, which they
	don't since they're recycled separately.
	
	Now the flags are cleared when the animation objects are recycled.
	- Add Mind Trauma debuff to Priest enemy debuffs whitelist.
	- Ticket #631: Allow Health and PowerBars to be animated/faded over time.
	This is similar to the BarFader module in PitBull3.  However, in this
	case it has been added to the BetterStatusBar implementation.  Bar
	modules that want to allow their bars to be animated should set
	allow_animations on their module object.
	
	This is also implemented using the animation system added in WoW 3.1.x.
	So it should be reasonably efficient.  Bars that are not set to animate
	and/or fade incur no overhead.
	- Ticket #748: CastBarLatency fails to show for abilities that don't trigger a GCD in some cases.
	See my comment on the ticket for details of how this happens.  This
	change also stops caching of the GCD between casts.  In a real
	environment the GCD can't usefully be cached due to haste.
Cameron Knight:
	- Make class orderings customizeable and also rely on Blizz's standard CLASS_SORT_ORDER for the default.
Shefki:
	- Style cleanup in CastBar module.
	Remove more camel casing and rename CREEPY_HEAD which is no longer a
	head but just a generic warcraftl log
	- Oops took one too many ends in the previous commit.
	- Fix the bug that causes the auto-hide CastBar to ocassionally not hide.
	There was a rare race condition between GetColor and FixCastData.  As a
	CastBar is fading out we bounce back and forth between these two
	functions.  When the calculation of the alpha gets to or below zero then
	the bar should be hidden.  GetColor would remove the cast_data and stop
	the timer frame but not clear the frames.  As a result the CastBar
	would be stuck.  Really, the GetColor function should not be deleting
	entries in cast_data, that should always happen in FixCastData.
	- Remove a parameter from a function call that was never needed.  Oops.
	- Fix Ticket #730: Fix deficit bars.
	Can't avoid clamping to 0 and 1 and then storing it and then claimping
	again for EPSILON and 1.  If we only clamp to EPSILON then we end up
	with zero values calculated which create bars of an indeterminite width.
	- BetterStatusBar was not clamping the extra value properly.
	When both the value and the extra value was 1 then we wouldn't clamp the
	extra value before setting it because 1 - extraValue resulted in 0 and
	we'd clamp between 1e-5 and 0./
	- Fix Ticket #728: Error in BetterStatusBar
	BetterStatusBar didn't deal with NaN being passed to it, e.g.
	StatusBar:SetValue(0/0).  It now treats this as zero.
	- Fix Ticket #726: PetHeaders being used on non-pet based groups.
	If you copy a group that was setup to use the pet header (Leave gaps for
	pets) then this setting would be copied and applied to non-pet groups.
	So if you copied a pet group and tried to make a raid then only raid
	members with pets would be shown.
	- Fix Ticket #549: Target highlights not always working.
	This module had a number of logic problems with it.  It had a mix of
	multiple design patterns that we use in PB4 modules.  Some parts of it
	assumed that the highlight was only on the frame when it was shown and
	some parts tried to hide and show the frame.
	
	Includes a slight optomization, as the color for the highlight is now
	only set on frame creation and the configuration code nows finds all the
	highlight frames and changes their colors when the config changes.
	
	The standard method of operation now for this module is to leave the
	Highlight frame in existance unless the module is disabled for the
	layout or the frame is entirely torn down.  The frame will be made on
	demand when it is first needed.
	- Allow for fader modules to have priorities less than the default.
	- Ticket #719: Add a priority system to the fader module system.
	Fader modules can now return an optional priority parameter as the 2nd
	return from their GetOpacity function.  If no priority is returned then
	it will be treated as priority 0.  The lowest opacity of the highest
	priority module will be used.  This allows modules to be written to
	force the opacity to be higher instead of simply lower.
	- Just call the Focus frame Focus in LuaTexts like the rest of PB4.
	We were using Focus-target as DogTags was using.  But this is terribly
	confusing when there is a Focus' target frame.
	- Convert the mouseover handling for LuaTexts to events.
	This is far more efficient since it's not updating on a polling basis.
	- Fix the show overheal option for the VisualHeal module.  It was always using the setting for the currently selected layout in the config section regardless of the layout for the frame.
	- Avoid an error in showing the FocusFrame since blizzard removed FocusFrame_Update()
	- Allow groups that were previously deleted during the current session to be recreated without requiring a reload/logout before they'll work.
	- Fix Ticket 643: Latency bar disappears if attempting to cast while already casting.
	UNIT_SPELLCAST_FAILED_QUIET shouldn't be watched for the CastBarLatency
	module.  It's only fired for situations that aren't interesting to the
	CastBarLatency module.
	- Tooltip option should disable and show as being set to Never if click-through is set on the frame since click-through won't allow us to detect the mouse is in the frame.
	- Fix some slopy implementation in the Unit and Caster Aura filter types. In particular known and unknown make no sense in the context of the Unit filter type and known and unknown should take no unit parmeter.
	- Always set the minimum width and height on the group header.  Prevents the positioning of group frames from being wrong after resizing the frames.
	- Aura filter update to support 3.3.3.
	- Revert "Make the Aggro module function when run in an unpackaged format."
	This reverts commit 5a648e4b0fa5b9a8270a6fa107d0dc3186a99bed.
	
	This was drycoded based on a report from ckknight.  It's not necessary
	and was causing errors.  Fixes ticket 708.
	- Split the Highlight filters for dispellable debuffs and extra friend debuffs.  The combination of these into one filter caused you to always to color the highlight by debuff type or a custom color.
	- Allow the Aura filters used for Highlights access to the consolidate and spell id filter types for frames that aren't showing auras but do have a highlight configured.
	- Ticket 707: Show buffs and debuffs cast by your vehicle in the default aura filters.
	- Ticket 504: Allow the Strata to be configurable.
	Adds Strata and Frame level options to the layout editor under General.
	- SetHorizTile and SetVertTile calls replace the use of SetTexCoordModifiesRect.
	- Fix Ticket 686: Addons registering media with SharedMedia that are loaded after PitBull4 and/or it's modules would not be used until the next normal update was triggered.  This commit forces an update when relevent media is registered to the relevent elements so that they will use the proper media regardless of load order.
	- New fix for Ticket 326 that's less hackish.  Does more work on startup but has no presistent overhead.
	- Revert "Fix ticket 326 et al: Border on player/pet frame doesn't show on login"
	This reverts commit a4434cd2a8a77cb2bb8dbfb44563332e20583c28.
	
	Changing to handle this in a different way.
	- Fix some improper behavior with CastBar backgrounds and add an option to show the background when nothing is being cast to satisfy ticket 705.
	- Fix Ticket #704: PTR error due to removed function.  Without extra stuff this time.
	- Revert "Fix Ticket #704: PTR error due to removed function."
	This reverts commit a577e558bff77a801c6f988d5a959c44e9333e3d.
	
	Due to accidentally commiting a lot of other unrelated stuff.
	- Fix Ticket #704: PTR error due to removed function.
vangual:
	- Also consider GCD in Latency.
	- Added optional queue display to Latency module. Please test and let me know if the default values work for you aswell. (Based on data from EJ)
Shefki:
	- Fix error that occurs in some rare cases while loading.
	- Hmm so I guess somehow a text can exist without the events table.
	- Fix an error in LuaTexts default Health texts.  The wrong event was used.  This fix includes code that walks the saved variables and fixes the event problem, essentailly renaming UNIT_HEALTHMAX to the proper UNIT_MAXHEALTH.
Cameron Knight:
	- Add per-unit font size multipliers, allowing you to (for instance), make your pet unit half the height and then decrease the font size appropriately so it all fits.
	- Fix what appears to be a typo
Shefki:
	- Allow pet groups to optionally not leave gaps for missing pets.
	- Remove some code duplicated by putting a deep_copy in Utils.
	- Make GetState() return the current state accounting for forced_state.
	- Code to support the state to be set manually.  No UI provided yet. Though it can be don with something like: PitBull4.StateHeader:SetAttribute("forced_state","raid25") or PitBull4.StateHeader:SetAttribute("forced_state",nil)
	First one would force PB4 to believe it's always in raid25 mode and the
	later would put it back into the existing automatic behavior.
	- Stop the Portrait from flashing on state changes since the background wasn't being hidden.
	- CombatText needs an OnHide method so the text won't flash during state changes after being in config mode.
	- Annother assertion to help me track down issue 475.
	- Fix an assertion error caused by the power colors used in the Airship and Saurfang encounters.  Blizzard's own numbers were out of bounds.
	- Ticket 684: Aura filter based on combat. Based on patch by enyim. Note: Using this filter forces polling of auras.  It may not be desireable for large numbers of frames.
	- Ticket 682: Warlock self buffs filter update. Based on patch from Niightblade.
vangual:
	- Ticket #611: Add VisualHeal option to clamp overheals.
Shefki:
	- Add support for some non-standard power types having their own color configuration as used in Ulduar and Icecrown Citadel.
	- Ticket #360: Tooltip Toggle.
	- Ticket 671: Remove aura id doesn't work.
	- Fix a typo in the description on the New id control in the Spell id filter.
	- Ticket 672: Aura filter controls missing order parameter, end up sorted by the localized name.
	- Ticket 666: Visual heal fails to anchor properly with defecit bars.
	- Ticket 673: Profiles broken because ckknight fails to test his code.
	In particular you can't LoadAddOn in the main chunk because that forces
	OnInitialize to end up being called before the SVs are ready.  So use an
	OptDeps, LoadAddOn in OnInitialize and put the LibStub in ADDON_LOADED
	where it belongs.
	- Ticket #667: Deleted groups show up again in subsequent config mode entries until the next reload.  They should be disabled before being hidden.
	- Add Should consolidate and spell id filter types to the Aura filter system.
	- Use AnyUp for the Clicks we capture since it's what we really want rather than listing all of the possible values.
Cameron Knight:
	- try to Load the addon LibBossIDs-1.0 if it isn't loaded already. Note: not going to add LibBossIDs-1.0 as a proper dependency or put it in PB4 embedded, as it's mostly just nice fluff and we don't want to bloat up PB4.
	- Add support for LibBossIDs-1.0 for classification checks, so that non-worldbosses will show up as bosses based on their MobID.
Shefki:
	- Make the Aggro module function when run in an unpackaged format.
	- Ticket 645: OH temporary weapon enchants bug out due to a typo.
	- Ticket 644: Full Body Portraits not always proper zoom.
	- Fix typo in the TOC that messes up the addon list title for role icon.
	- Ticket 640: Add ulic's RoleIcon module.
	- Ticket 648: Add Haunt to Warlock enemy debuffs.
	- Ticket 656: Wrong default state in toc file caused LOD loader to reverse enabled state.
	- Commit the .pkgmeta changes I forgot to commit when I replaced VisualHeal with VisualHeal4.
	- Replace the VisualHeal module that used LibHealComm-3.0 with the 4.0 one that was experimental.
	- Bump TOC for 3.3.0
	- Workaround for the You are not in a party stuff.
	- Oops called the wrong update function which broke the ability to disable VisualHeal4 per layout.
	- Ticket 606: Groups that were enabled and then redisabled during a single session would not get their state map updated and would show again on the next state change.  Most of the complaints were about party pets, but it was universal to any group.
	- Fix spell id for Chains of Ice for PTR, but backward compatabile with 3.2.x as well.
	- Oops forgot to updated the load.xml for VisualHeal4 with the correct libraries.
	- Fix some .pkgmeta syntax errors
	- Add a module with experimental LibHealComm-4.0 support.
	- Ticket 297: Anchor text so it doesn't hang over the edge when set to position on the edges of the unit frame.  This makes the text anchor slightly different than indicators placed in the same place since they will be centered on the corner.
	- Not sure what the heck I was thinking when I did this.
	Revert "Allow Party frames to be shown when in a raid per the Show when options"
	
	This reverts commit 4ad10da05c73d28d33d170dfc0485506d45228c7.
	- Fix typos in RangeFader that broke long enemy range tests for Shaman and Warriors.
	- Allow Party frames to be shown when in a raid per the Show when options under filtering.
	- Fix Unholy Blight in Aura filters, was changed in 3.2 and got missed.
	- Properly enable/disable some spells based on player race from filters.
	- Add Blood Corruption for B.Elf Paladins and make Holy Vengeance be alliance Paladin specific.
	- Remove the filter for just Vengeance, no idea how we got this but it was an NPC ability not a Paladin ability.
	- Typo in the spellid for Seal of Corruption.
	- Aura filters: Seal of Vengeance is alliance only and Seal of Corruption (horde version of Seal of Vengeance) was missing entirely.
	- More appropriate hat for the day.
	- Try and load LibHealComm if VisualHeal is enabled, also for dev enviornments.
	- Try to load LibBanzai when the Aggro mdoule loads for dev environments.
	- Don't set hooks if the module is disabled.
	- Small performance improvement with the Portrait module.
vangual:
	- Don't query Banzai when it's not loaded.
Shefki:
	- Add Hunger For Blood to Rogue Self Buffs.
	- Fix a case where I missed or UNKNOWN which caused SmartRace() to return nil sometimes.
	- Move the include player checkbox to the end of the General tab under Groups and make it a double wide control.  This should stop the panel from shiting around as much and allow the full name for the checkbox to be displayed.
	- Widen the Range check method drop down for localization reasons.
	- Make text refering to temporary weapon enchants consistent.  We had Weapon auras, Weapon buffs, and Weapon Enchants.  Using Weapon enchant(s) everywhere now.
	- Ticket 595: Fresh installs were not initializing properly.  Fix this by making sure modules always get OnNewLayout called for every layout even ones that were "new" to the session before they were loaded.
	- Switch Aggro module to using OnModuleLoaded from the hooks and timers it was before.
	- Add a new callback OnModuleLoaded for mdoules to know when another module has loaded.
	- Fix a long standing quirk in the Texts attach to/location configuration. When you changed between attaching to the unit frame and a bar the location list changed but the current setting would remain one that wasn't on the list so the drop down would just be empty and the text would either remaining in the old place or disappear.  The location now changes to a valid option when the attach to invalidates the current setting.
	- Ticket 456: RangeFader check for visiblity.
	- Ticket 583: Improved options for the RangeFader.
	- Ticket 434: Rework Aura Borders to allow more configuration. Fair warning: This will put all your Aura coloring and border options back to default.
	- Fix a bug where Portraits for out of range units didn't fallback properly and ended up showing the last displayed unit's full body.
	- Ticket 593: Discrepency between localization system and string in code.
	- Ticket 592: Modules that are enabled per PB4 config but disabled per Blizzard configuration were not showing in the module list in game.
	- Load modules in OnProfileChanged so they can be loaded on demand for profiles that have them enabled after being on a profile that had them disabled.
	- Workaround an issue with load on demand modules and AceDB-3.0
	- Add support for oRA3 and some minor refactoring of the main tank and ADDON_LOADED code to help support it.
	- Update hooks for Aggro module when other modules load on demand.
	- Change the reason string a tad for modules that are disabled.
	- Oops helps when you return the format instead of just one of the strings.
	- Make the Modules section turn off the checkbox to enable modules we can't load and provide text to explain why.
	- Add error handling/reporting for trying to load on demand modules.
	- Fix typo that's breaking the CombatFader from loading on demand.
	- Fix Aggro module to properly work when being loaded on demand.
	- load.xml was missing from HostilityFader, I'd missed committing it.
	- Somehow I missed CombatFader and Highlight in the move-folders. Packages should be correct now.
	- Fix the case error in the git path names of the toc files. This should fix the packaging problem.
	- Revert "Hmm try moving move-folders up and seeing if that fixes the toc files"
	This reverts commit 156b95e90e2cd54e07b6588006c82f6f578d0fc2.
	- Revert "Temporarily remove the localization stuff from Aura to see if that gets"
	This reverts commit 7cfb12dc5bccef2567b410278467fdb107702b7b.
	- Temporarily remove the localization stuff from Aura to see if that gets the pkackager to move the TOC files.
	- Hmm try moving move-folders up and seeing if that fixes the toc files not being moved.
	- Oops left the PitBull4/ off the start of all the folder moves
	- Remove LibDogTag, LibBanzai and LibHealComm for OptDeps on the main addon.
	- Shift packaging to split modules for full LoD support.
	- Workaround another related issue to ticket 475.
	- Fix Portrait module errors in config mode.
	- Add the appropriate OptDeps for Aggro, DogTagTexts and VisualHeal modules.
	- Load modules before creating the initial frames.
	- Move LibHealCom into VisualHeal module.
	- Move Banzai library into Aggro module.
	- Entirely replace the state code for hiding and showing groups.  This adds 5,15 and 20 man raid modes.  The recently added "Small raid as party" checkbox is gone.  You will very likely need to adjust the Show when settigns for your groups.  This change also changes the meaning of the checkboxes slightly.  Previously they would condider what groups players were in.  Now they only consider the number of players in the group.  If you have multiple groups for the same raid that are intended to all be shown at the same time, you should simply check all the Show When boxes, they are intended for people that want entirely different raid setups for different sizes.  Ultimately, the fruit of these changes is raid and party changes in combat will still change the setup.  This includes logging in while in combat.
	- So hopefully this really fixes the oRA main tanks updating when logging in.  It should work probably 99% of the time.  It will not be able to restore the main tank list when logging in during combat because the MT list module for oRA doesn't load until you join a raid and you're in combat by the time you know that you're in a raid.  As soon as you leave combat it should pickup the main tank list though.
	- Avoiding starting the cleanup timer for GroupHeader configuration changes that temporarily hide the frame.
	- Make sure to remove existing timers for the delayed cleanup when we start a new one.
	- Remove LibDogTag and LibDogTag-Unit from the main libs.xml they're under DogTagTexts.
	- Add some defaults for bar provider modules that I should have added when I brought their support up to par with bar modules.
	- Better fix to deal with MT frames getting set properly when loading in with oRA2 (sigh at them not generating an event and silently loading the tank list from saved variables).
	- Shift the LibDogTag embeds into DogTagTexts in preparation of packaging the modules as LoD.
	- Ticket 585: Workaround a similar error to ticket 475.
	- Turns out zhCN doesn't have 3.2 yet so roll this back for now. *sigh*
	Revert "Eliminate our own class localizations in favor of the included Blizzard"
	
	This reverts commit e14c1462b1f1156d222220a9f529fe4c63b514a5.
	- Debug assertion to try and help me track down the actual cause of 475.
	- Prevent errors in config mode for frames that we end up unable to create fake unit ids for.
	- Workaround for 475, doesn't fix the root cause but will prevent the errors from occuring.
	- Revert "Debug code to help try and trace ticket 475." This code is no longer providing additional data to help track down the issue.  I have enough now from this area.  Non reason to leave this performance drag in.
	This reverts commit 4020065063dbe5fcdd38aa978be1fbe75be46654.
	- Ticket 336: Change the Lock frames checkbox to a dropdown that allows you to choose if the frames will snap while unlocked or not.  Also allow you to shift right-click the minimap icon to toggle frame snapping.
	- Ticket 510: Allow 5 man raids to be treated as raids.
	- Stop the comparison with nil errors from BarModules.lua
	- So apparently cast_id is always zero for NPCs casts.  So we can't throw away casts with a zero cast_id.  Oops.
	- Prevent out of bounds alpha values from being passed through to BetterStatusBar.
	- Ticket 509: CastBar colors for competed and failed casts.
	- LuaTexts: Use the cast_id to match up events to the cast we're displaying.  This should prevent failure messages from showing for casts that are blocked by the current cast.
	- Oops the cast_id wasn't actually being set to the cast_id in LuaTexts.
	- Make the cast_id and interruptible state of casts available to LuaTexts. As cast_id and interruptible in the cast_data table returned from CastData().
	- Ticket 509: Castbar colors for casting, channeling and interruptible/not-interruptible.  Based largely on patch from Vangual.
	- New bar coloring options should be disabled when the bar is disabled.
	- Ticket 286: Allow bars to be colored  by pet happiness.
	- Rename BarModule.lua to BarModules.lua for clarity.
	- Delete the old no longer used BarProviderModule.lua
	- Merge the BarProviderModule.lua into BarModule.lua so that bar and bar_provider can share some of the code that they're duplicating right now.  This also means that bar providers gain some fixes and functionality that previously only bar modules had (icons, background color, and alpha mixing).
	- Add the HostilityFader module.  Useful for fading out mind controlled group members.  The RangeFader for some classes did this in PB3 but it was more of a sideffect than deliberate.  I came to like it though.
	- Add option to Caster and Unit filter types to detect if the caster is known or unknown.  To allow filters to deal with debuffs where the caster is not known.
	- Make the description for Color by hostility more clear that it only applies to player characters.
	- Fix a typo that stops color npcs by hostility from working.
	- Small correctness fix has no real impact.
	- Avoid some unnecessary layout work caused by the Portrait module.
	- Another indicator module that's partly broken because I didn't realize it had a custom UpdateFrame() function so it needs Show() calls added.
	- Ticket 546: ComboPoints not showing after deselecting target.
	- Eliminate our own class localizations in favor of the included Blizzard ones with 3.2 (LOCALIZED_CLASS_NAMES_MALE and LOCALIZED_CLASS_NAMES_FEMALE)
	- The unfilled part of the CastBar should fade out along with the filled portion.
	- Shift UNIT_FACTION support for bars out of the specific bars and into the core to allow color changes for the now generic hostility coloring.
	- Ticket 562: Vehicle swap stuck when zoning out of an instance removed the vehicle.
	- Well not too terribly bad for drycoding.  Fix the stuff I missed when working on the plane.
	- Drycoded rework of the coloring system for bars.  This allows any bar to be colored by class or hostility.
	- Ticket 547: Master Looter icon on frames other than party/raid.
	- Ticket 547: Leader icon on frames other than party/raid frames.
vangual:
	- Proper fix for WorldMap bug (#539)
	- Workaround for Worldmap issue occasionally making totem timers partly disappear.
Shefki:
	- Rename the HL: filters to Highlight: since we expanded the box and it'll fit now.
	- Remove the Clique workaround, as long as you're on WoW 3.2 and using r125 or newer of Clique this is no longer necessary.
Cameron Knight:
	- load modules on OnEnable (i.e. PLAYER_LOGIN) instead of ADDON_LOADED
Shefki:
	- Bump TOC for 3.2
	- In retrospect it's better to force the bar modules to provide their own config for the custom_extra colors since most of them don't use extra bars and Extra means nothing to players.
	- Allow modules to override the order of their options.
	- Oops background alpha from modules should mix with the right alpha config option.
	- Ticket 492: Add the ability to configure the extra bar color.
	- Remove duplicate alpha code.
	- Use the proper function to set the bar alpha.
	- Bring the GetBackgroundColor() function in line with GetColor().
	- Combine the module provided alpha with the configured alpha rather htan just using the alpha from the module.  Let's modules fade the alpha starting from the configured alpha (e.g. CastBar when the cast is done).
	- Properly use the empty opacity for the background alpha on bars.
vangual:
	- Small sanitycheck for possible scaling error.
Shefki:
	- Display should be wrapped for localization.
	- Fix the text and the width on the VisualHeal color options.
	- Widen some more dropdowns that need it for translated strings.
	- Widen the filter dropdowns so they can contain the filter names without clipping.
	- Allow smooth fader updates to be disabled.
	- Need timerFrame to be made before RecheckAllOpacities.
	- Turn the timer for faders on and off as needed instead of constantly running.
	- Use the trade range to short-circuit range testing rather than follow. Trade is 11.11 yds, follow is 28 yds and some abilities are 20-25 yd ranges (Cyclone, Intervene, etc)
	- Ability to Range Check for Warriors and Rogues.
	- Friendly range check for DeathKnights.
	- Friendly range check for Mages.
	- Pet and Friendly range checks for Warlocks.
	- Add Judgement of Light to the range check for Holy Paladins.
	- Pass nil for the alpha for the Aggro modules hook of the HealthBars' GetColor() function.
	- Finish putting alpha support back in for bar modules GetColor functions. Bar modules should pass nil for the alpha unless they desire to override the layout full and empty opacity settings.  If a custom color is used the alpha from the the layout settings or the modules return will be used.  So there are still no alpha settings on custom colors.
	- Put the alpha return back in the GetColor() functions for bar modules. (part3)
	Revert "Remove alpha from the custom color configs and color apis for bars."
	
	This reverts commit e01aeeda81ecaed0f6f52d29f911e9ca908ce437.
	
	Conflicts:
	
		ModuleHandling/BarModule.lua
		Options/LayoutEditor/Bars.lua
	- Put the alpha return back into the GetColor functions for bar modules (part 2)
	Revert "Remove an unnecessary return that I missed when I removed the alpha"
	
	This reverts commit 0de1208c85392877f85798353c6d763f631c2d11.
	- Put the alpha return back into the GetColor() functions for bar modules.
	Revert "Fix Ticket 451: Errors with custom color for BlankSpace.  In particular"
	
	This reverts commit de5d1953b84ea70c8ebe994d8df0463e41559629.
	- Ticket 532: Workaround for a Blizzard bug that causes Aura tooltips to show wrong.
	- Ticket 523: Border doesn't update for classification changes.
	- Ticket 525: Health Bar color wasn't updating for hostility changes.
	- Fix a place where we used IsShown() when we should have used IsVisible().
	- Totems really doesn't use AceConsole no reason for it to be a mixin.
	- Put the enable checkbox back.  The fact that there is an Enable and a None in the drop down is less than elegant.  But it works for now.
	- Vertical bars should respect Bar padding on their top and bottom.
	- Make the Aggro module deal with the states of the other modules it uses to display the aggro better.  Also fixes ticket 329.
	- Allow all modules to remove options provided by the module templates.
	- Ticket 335: Aggro module doesn't work for HealthBar when HealthBar has a custom color.
	- Oops, use the right description string for the last commit.
	- Ticket 518: Tooltip for HappinessIcon module.
	- Make the default group actually be the Party group in the config dialog. If the Party group doesn't exist it'll just be a randomly selected group.
	- Ticket 465: Misplacement of text following a blank text.
	- Replace Class: Short with code that only shows the class and rename the old Class: Short to Class: Short level and race.
	- Ticket 512: Dropdowns too narrow to fix text.
	- Ticket 515: Fix disappearing rune indicator.
	- Debug code to help try and trace ticket 475.
	- Ticket 457: CastBar disappears after opening the WorldMap and closing it.
	- Missed some spots  for the previous change for the CastBar.
	- CastBar: Turn the timer on and off as needed rather than running all the time and checking if needs to do work.  Should improve performance slightly when nobody is casting.
	- Remove text justification from the overlapping text code.
	- Final work on text justification.  Multiple texts in the same anchor point should now be justified properly.
	- Ticket 514: EnableMouse is protected and needs to be done out of combat.
	- Hide the options when the HideBlizzard module is disabled.
	- Fix a logic error that made HideBlizzard hide all the blizzard frames when disabled.  When it really should leave them hidden.
	- Fix duplicate calls to MaxPower in two prebuilt LuaTexts codes.
	- First pass at setting text justifications.  Only justifies the first text in a given anchor location.
Cameron Knight:
	- change _G.expect to instead be PitBull4.expect, so that it doesn't pollute the global namespace.
Shefki:
	- Ticket 505: Outside Left anchors not moving the proper direction for the margin.
	- Ticket 503: VisualHeal module not properly dealing with multi-target heals.
	- Ticket 490: Config mode doesn't respect CastBar's show icon configuration.
	- Use the proper config value to pad in both directions for outside corner anchors.
	- Ticket 261: Inside bottom anchors were using padding in the opposite direction it should have been.
	- Small code cleanup on some of the event code.
	- Fix problems with pet frames not fully updating becuase not all the information is available when UNIT_PET fires.
	- Tab the Groups configuration for usability reasons.  People keep accidentally using the Unit group dropdown to try and change the current group.  This of course causes great confusion.
	- Aura Highlight should be removed when the frame is cleared.
	- Typo
	- Stop listening to UNIT_NAME_UPDATE for GroupHeaders.  Should prevent some performance stuttering issues in BGs caused by pets and spirit rezes.  Should also limit (though not eliminate) performance issues created by people using title rotating addons.
	- Hide the controls on the unit frames to when the frame is hidden to prevent flashing when unitsuffix frames are briefly showing from a SecureGroupHeader_Update() call.  This is a result of the group header not knowing that we're using the state driver to hide/show our frames and is doing it for us.  However, at the same time the group header is unaware of the unitsuffix and so it shows the frames becuase the parent unit exists.  This gets remedied when in the next OnUpdate call becuase the state driver hides them again.  However, in the between this the frame is briefly flashed.  Currently there is no solution to this short of removing the controls or hiding them. Request was made to provide an attribute to disable the group header from doing the showing for us.
	- Properly update frames after leaving config mode.
	- Use the proper spell id for Berserking now that there is only one spell.
	- Ticket 476: Visual Heal height/width not changing when HealthBar height/width changes.
	- Sometimes the bar isn't really a bar.  If so it may not have a bg of fg to use to anchor.  In which case just use the bar itself.
	- Change the default health text to Absolute and Percent.  Smart confuses people.
	- Stop creating units in advance for groups.
	- Need to protect for nil unit as may happen in config mode.
	- Force Clique into setting click casting attributes on group frames made in combat.
	- Remove OutOfCombatWrappers from some functions that shouldn't have them as they need to be run from the InitialConfigFunction.
	- Remove some dead code.  If this was to work it should have had a . instead of a : but it is entirely unnecessary anyway.  So removing.
	- Fixing the Show scripts makes this break.  We really have to show the GroupHeader before the frames are setup otherwise SecureGroupHeader_Update() is tripped and the frames will be hidden again.
	Revert "Speed up entering config mode by not showing the groups until they're"
	
	This reverts commit 3038a0d3a5f69bf6e9eed8da16dd8d773e0444b2.
	- GroupHeader:RefixSizeAndPosition no longer depends on frames being precreated.
	- Avoid an error reaping frames in deactivated GroupHeaders.
	- Make UnitFrame:ProxySetAttribute consistent with GroupHeader:ProxySetAttribute.
	- Use HookScript for UnitFrames as well rather than SetScript.
	- Properly use HookScript to setup the GroupHeader scripts so we don't overwrite the existing scripts from the template.  This removes the necessity for the header:Update() on main tanks changing.
	- Stop using ProxySetAttribute when the frame is hidden, it's pointless the Update isn't triggered anyway.
	- Stop calling SecureGroupHeader_Update directly, it causes taint.
	- Must use IsVisible to skip over hidden frames since inactive frames from other profiles in group headers will still be shown but not visible because their parent group header is hidden.
	- And a function leaked into the global namespace.
	- And another global variable leak.
	- Another global variable leak.
	- Fix a global variable leak.
	- Fix some positioning related issues where groups would move from where they were positionined in config mode when players actually entered the group.
	- Prevent groups from being stuck to the mouse while moving in some rare cases.
	- Ticket 459: Group frame positioning buginess after changing size of a layout.
	- Fix for frames getting stuck to the mouse while moving.
	- Get rid of the ugly gap in the background of the CastBar when the icon is shown and it's not set to auto-hide.  In the process end up simplifying some of the bar text layout code.
	- Add range check for offensive Shaman abilities.
	- Make the RangeFader know about resurrection spells and use them to range check dead units.
	- Hide/Show the minimap icon when the proflie changes accordingly. LibDBIcon:Refresh() does not do this for us. :(
	- Fix config dialog ghosting of some settings when changing profiles.
	- Fix the default texts to not adding a + to the delay for channeled spells since they are actually removing time from the channel.
	- If the first return for LuaTexts is nil set an empty text.  Allows some tags to be simplified such as: return Classification(unit) is now valid.
	- Hmm ok guess we have to actually force the update if we're in config mode.
	- Fix some weirdness in config mode where force shown frames would get stuck when losing their targets.
	- Fix a typo
	- Speedup for target of and target of target of frames.  Don't wait for the timer to catch these frames and fore an update if their parent frames updated.
	- Fix VisualHeal for cross realm players in BGs.
	- Fix cast texts when changing targets mid cast.
	- 3.2.0 compatability for LuaTexts.
	- Have to force DogTagTexts to update if the unit on a frame changes (e.g. the vehicle swaps).
	- Fix Ticket 461, Wacky Unit Cast Text.
	- HideBlizzard needs to update what is hidden when the profile is changed since the settings may very from profile to profile.
	- Improvements to the text provider system.  In particular: - Do not cause an UpdateLayout on every text provider UpdateFrame call.   In order to do this config changes now remove all the texts and build   new ones rather than trying to update this in place.  This allows   the standard update system to assume a text is correct if it already   exits. - For DogTagTexts only call AddFontString when we need to add a string.   LibDogTag will check if the text needs to be reconfigured and if not   simply update the text.  LibDogTag tracks it's own events and never   needs to be prompted to update.  So this would cause texts to be   updated multiple times for the same reasons. - For LuaTexts no longer remove texts from hidden frames.  But simply   remove them from the update schedule.  When the frame is shown they   will be rescheduled again.  This eliminates the need to UpdateLayout   since before they were removed and rebuilt.  This however is not   possible for DogTagTexts becuase there's no way to ask it to stop   updating in place texts. These changes will result in large performance improvements for people using DogTags and modest improvements for LuaTexts.  LuaTexts still outperforms DogTags but only modestly now.
	- Make CombatText a tad more efficient by turning off the timer when it's not needed.
Cameron Knight:
	- Some tweaks to the right-click menu, including a line to replace Set/Clear focus explaining why it's not possible.
	- In order to at least prevent Set Focus from erroring, popup menus are screened for "blacklisted" actions, which currently include SET_FOCUS and CLEAR_FOCUS. These will no longer appear on PB4's menus (unless a real solution can be achieved)
	- fix figure_unit_menu to calculate NPC targets properly. It was changed to "TARGET" from "RAID_TARGET_ICON".
	- Flesh out the LoD handling. Add TOC files to all modules.
	- fix a typo, changed a function name and didn't change it another place.
	- forgot the ending @ on @localization@
	- add initial LoadOnDemand support (just loads LOD modules regardless of options). Add a toc for HealthBar, Localize the tocs.
Shefki:
	- Fix Ticket 450: Blizzard BuffFrame broken for Vehicles.
	- Put the PlayerFrame in the proper state when showing while in a vehicle.
	- Use the OnLoad scripts for the Blizzard frames to enable the events they need.  This will require little to no-maintenance to keep them working.
	- Emulate some events so the player frame looks properly when set to show after a fresh login.
	- Toggling the hiding of the RuneBar on a non-DK should not show it.
	- Fix Ticket 353: ReadyCheck icon missing from group frames in config mode.
	- Fix extra space in default Class code in LuaTexts.  You'll have to reselect from the drop down to get the updated code.
	- Fix Ticket 451: Errors with custom color for BlankSpace.  In particular the support code for alpha from the color selection needed to be removed like normal Bars.
	- Remove an unnecessary return that I missed when I removed the alpha code.
	- Remove some useless options from the config dialog for BlankSpace.
	- Fix the ordering of the color options in the config dialog for bars.
	- Fix ticket 413: Grey player health bar. Patch provided by Vangul.
	- Add a SeparateDigits helper function to LuaTexts.
	- Use wipe instead of clearing the table in lua.
	- Update the maintank list from oRA faster.  An optimizaiton broke this.
	- Add IsOffline(unit), IsAFK(unit) and IsDND(unit) helper functions to LuaTextx.
	- Provide access to the event that triggers the text to update with LuaTexts.  There is a variable in the ScriptEnv called event now with this info.  Texts that are just created will receive "_new" and texts updating due to implicit update reasons or timers will receive "_timer."  This should allow for caching of things like Auras and proper detection of combat lock downs.
	- Changing the profile will now enable/disable modules per the profile settings.
	- LuaTexts is the default text provider module now.
	- Fix the portraits reverting to full body mode when the frame is reused.
	- Fix missing Remove and Type controls after creating a new text.
	- Ticket 437: Text enable checkbox not functionining properly.
	- Make the determination if you're in a 10,25 or 40 man raid based off if anyone is in those groups not by current size.  This should allow it to scale appropriately based on what groups people in.  Should end complaints about people missing from raid groups.
	- Fix the delay calculation to properly spend 10 minutes cleary the frame.
	- Add some more possible tests for Unit and Caster Aura filters.
	- Add the Caster filter type.
	- Delay clearing frames in groups and never clear singleton frames.  Group frames will be cleared starting 5 minutes after you leave the group and will finish 15 minutes after you've left the group.  This will eliminate CPU churn from group members changing while in the group and from target, focus et al changing any other time.
	- Speed up entering config mode by not showing the groups until they're done being setup.
	- Go back to using PLAYER_TARGET_CHANGED but ignore UNIT_TARGET events for player.  Seems UNIT_TARGET requires a server round trip that makes the target frame laggy.
	- Ticket 400: Groups failing to update based on config while in config mode.
	- Offsets need to be reversed when the frame is mirrored.
	- Stop listening to UPDATE_MOUSEOVER_UNIT, PLAYER_PET_CHANGED and PLAYER_TARGET_CHANGED.  We're not using the mouseover unit and it's wacky so it doesn't help the other wacky frames.  PLAYER_PET_CHANGED is obsolete and is no longer even fired, UNIT_PET is though. PLAYER_TARGET_CHANGED doubles up with UNIT_TARGET.
	- Avoid an unnecessary extra call to UnitGUID()
	- Ticket 270: Allow bar texture to be reset to default. You were supposed to be able to reset it to default by setting it back to the same value as the default.  However, we weren't properly looking up what the defualt value was. (this time the correct changes for this commit)
	- Revert "Ticket 270: Allow bar texture to be reset to default."
	This reverts commit 64c67054f6e05fce1290e592f65a91cc495b6be1.
	- Ticket 270: Allow bar texture to be reset to default. You were supposed to be able to reset it to default by setting it back to the same value as the default.  However, we weren't properly looking up what the defualt value was.
	- Ticket 293: Alter the spacing range to allow negative spacing for bars.
	- Ticket 358: Toggle for vehicle swap.
	- Fix a bug in a function we're not even really using.
	- Aura text configuration should be disabled when the current text is disabled.
	- The unitid for the player's pet in party pet frames with include player's pet turned on is actually playerpet, damn you Blizzard.
	- Remove duplicate configuration for enable/disabling time remaining text.
	- Fix a typo in a string.
	- Allow the slider to go down to 30% for Aura font sizes.
	- Configuration for and improvements to texts on Auras.
	- Friendly colors should disable when set to use unfriendly colors.
	- Add in a default I missed comitting when i only committed part of the Options file.  Sorry.
	- Fix a typo.
	- Ticket 368: Allow frame level of auras to be set.
	- Ticket 356: Add options to color friendly auras by type.
	- Show tenth of a second precision for time left text timers on auras and use SetFormattedText() to avoid creating garbage.
	- Fix default LuaTexts to put something on empty texts when in config mode for the player frame.  In particular the castbar.
	- Fix error in LuaTexts Reptuation - Standard default code.  In order to get this applied to your config you'll have to go through and reselect the Reputation - Standard code from the drop down box for each Layout.
	- Bump the Interface number to 30100 and change to \n instead of \r.
	- Fix an error in the documentation for the call_background_color_function().
	- Remove alpha from the custom color configs and color apis for bars. This is already handled by the full and empty opacity configuration.
	- Ticket 163: Add custom background color option for Bars.
	- Ticket 418: Weird error with temporary weapon enchants.
	- Ticket 419: right clicking debuff removes buffs.
	- Ticket 238 et al.  Fix scaling problems with a large number of frames. Most notable with Texts and ManaSpark.
	- Stop treating raidpet units as wacky.  We really do get events.  Should improve performance.
	- Add a text for the PVPTimer in the default config for both DogTag and LuaTexts.
	- Fix a reference to a function I was using for profiling.
	- Add ShortClassification, ShortRace and ShortClass
	- Minor localization fixes for LuaTexts.
	- Class function shouldn't be in global namespace.  Oops.
	- Spread wacky frame updates over the frames that occur between our update rate.  This theoretically improves perceived performance by removing jerkiness but in practice probably doesn't change much.  But it's a good idea anyway.
	- Don't update hidden frames on a timer.  Should be a very large performance upgrade in large raid groups.
	- Disable fast power updates in LuaTexts if predictedPower is off.
	- Fix a bug with PowerBar's not updating with predictedPower turned off.
	- Apply the same fix ckknight did to CastBar to LuaTexts.
Cameron Knight:
	- make :FixCastData() less likely to break with the invalid key for next issue
vangual:
	- Adding more Warrior selfbuffs and procs.
Shefki:
	- Make that 4 places we had PLAYER_REGEN_DISABLED trapped. Message for disabling config mode wasn't localized either, oops.
	- Seems unnecssary to register PLAYER_REGEN_DISABLED in 3 places.
	- Update HealthBar and PowerBar every OnUpdate.  In a strange way this should actually improve perforamnce, since we won't be updating bucketed events on a timer and they won't group up.
	- Fix Abbreviate.
	- Add AggroColor(unit), HPColor(cur,max), PowerColor(power_type), and ReputationColor(reaction)
	- Fix HostileColor to support checking PVP flags like it should have.
	- Add PVPDuration() function.
	- Fix typo in vehicle name support.
	- Fix the bug where Offline(0:00) shows up for people that are clearly not offline.
	- Don't run PARTY_MEMBERS_CHANGED once a minute but only the first time like I intended.
	- Fix a typo in MaxXP() and dump the unit == "playerpet" crap.
	- Any unit not just those in your party should get marked as Dead.  Oops.
	- Fix some bugs with FormatDuration() that we picked up from DogTags. Oops.
	- Fix typo in UNIT_SEPLLCAST_CHANNEL_STOP event name. Reselect: Cast - Standard time and Cast - Standard name in texts to fix in your own configurations.  It won't pick it up automatically. :(
	- Provide access to the timers via AFKDuration(unit), DeadDuration(unit) and OfflineDuration(unit). Allow scripts access to the already existing FormatDuration()
	- Add Abbreviate() to LuaTexts convenience functions.
	- Remove HasDivineIntervention().  Ended up being nothing but a wrapper for UnitAura().  Don't want to encourage the idea that I'm gonna replace all the DogTags that there's no point in doing so.
	- Oops add the missing load.xml for LuaTexts.
	- Tag cleanup in the defaults not just the presets.
	- Add the LuaTexts module.
	- Allow texts to be disabled individually.
	- Short does nothing for a Percent it should be Round(1) Remove some dead code.
	- Remove some dead code from the default DogTagTexts, health is always known exactly now.
	- Avoid some garbage collection by using :SetFormmatedText()
	- DogTagTexts isn't CombatIcon.
Cameron Knight:
	- on fontstring deletion, be sure to reset the font, so as to clear any possible modifiers.
Shefki:
	- Ticket 393: Druid enemy spells for range fader.
	- Ticket 392: Curse highlighting for Shamans not detecting spec swaps.
	- Ticket 379: Eclipse added to Druid self buff aura filters.
	- Fix ticket 326 et al: Border on player/pet frame doesn't show on login
	- Fix 299: CastBar unfilled when switching target error. Applied patch from wurzel.
	- Helps if you actually pass the new parameters to make the optmization work.
	- More config mode optimizaiton, avoid repeated ForceUnitFrameCreation calls.
	- Limit the number of frames made for main tank filtered raid groups, 40 frames was silly.
	- Optomize entering config mode, going straight into a 40 man configmode shouldn't disconnect you now.
	- Fix config mode for raids that was broken with the delayed frame creation changes.
	- Remove some code I meant to remove with the previous commit.
	- Bucket guids for health and power updates which should improve performance.
	- Bucket PowerBar UNIT_ events too, they were in PB3.
	- Large perf improvement: Bucket UNIT_HEALTH updates like we did in PB3
Cameron Knight:
	- Make it so we no longer create every possible frame at the start, but rather, progressively. It will create n+3 units (where n is current) so that there is some leniency. In battlegrounds, it will try to detect and create the expected number based on zone.
	- Make :RunOnLeaveCombat slightly more efficient
Shefki:
	- Properly handle resetting and copying profiles.
	- Optimize startup slightly, halfs the frame:Update() calls when building GroupHeaders.
	- Unwrap RAID_ROSTER_UPDATE since it was unnecessary and created work to pile up till we left combat.  Should improve performance when leaving combat.
	- Fix problems with party/raid changes during combat. :RunOnLeaveCombat() flat out didn't work when you were in combat. Fail on ckknight's part.
	- Optomize DruidManaBar to avoid unnecessary iterations for bars that won't exist when you're in a form with a mana bar.
Cameron Knight:
	- when bars are created/destroyed, except when frame:Update() is called, call module:Update(frame) for all text-based modules.
	- Make the guids refresh on PLAYER_ENTERING_WORLD and every 15 seconds, just in case. Isn't very expensive if nothing has changed.
Shefki:
	- Use a wrapper for caching in PowerBar.  No real change, just looks nicer.
	- Account for pet units for the fast power performance improvements.
	- Fix auto hide of the castbar that was broken by the performance tuning.
	- Performance improvement to CastBarLatency module.
	- Cache the players last seen power and avoid needlessly updating the powerbar.  This avoids PowerBar from chewing CPU time when you've got full mana.
	- Variable leak into global namespace.
	- Performance improvement for CastBar: Do not iterate frames when nobody is casting.
Cameron Knight:
	- Because CVAR_UPDATE is useless, we have to hook SetCVar in order to tell if CVars actually change.
Shefki:
	- Stop doing fast updates on the PowerBar if turned off in the CVARs.
	- Remove fast health updates entirely since Blizzard broke them anyway.
	- Wacky frames' health and mana bars were being updated twice when they referenced the player or their pet.
	- Avoid unnecessary multiple calls to select().
Cameron Knight:
	- Add a version display to the options screen.
	- if a wacky unit exists, then a non-wacky unit appears that has the same guid, the wacky unit should update its best unit.
	- Set up a guid-tracking system where wacky units detect equivalent non-wacky units and ride on the coat-tails of their events. This dramatically improves performance of wacky units if an equivalent non-wacky unit is found.
	- make the @alpha@ checks just a standard if statement, which is enabled only when in dev mode
Shefki:
	- Fix ticket 372: Aura tooltips on auras other than buffs on yourself.
	- Ticket 338: Add an option to disable capturing clicks on aura icons.
	- Don't capture mouse input on auras that are not buffs and aren't on the player themselves.
	- Performance improvements to the Aura module.  Code for cooldown texts no longer iterates all the frames searching for cooldown texts that need updating.
	- Shift some event handlers to Update.lua so we can merge a loop.
	- Optomize the aura updates.  No reason to iterate frames when there are no queued updates.
	- Upvalue table.wipe for a function on a timer.
Cameron Knight:
	- Allow for coloring of PvP enemies by class.
	- Make Shadow Word: Pain the priest attacking spell as far as RangeFader is concerned
	- RangeFader: set the enemy range spell for paladins to Hand of Reckoning
	- add arenapet support.
	- zoom portrait textures
Shefki:
	- Fix ticket 346: Aura highlight producing invalid order function errors
Cameron Knight:
	- make the BetterStatusBar handle cases where the value < 0 or > 1 by clamping.
Shefki:
	- Add aura highlighting.
Cameron Knight:
	- possible fix to vehicle unit switching
Shefki:
	- Avoid an error when an aura update in the middle of a profile change.
	- When changing profiles deactivated unused singleton frames.
	- Fix ticket 323: CastBar Text problems with auto-hide.
Cameron Knight:
	- fix the icon tutorial to say "indicator" instead of "icon"
Shefki:
	- Use Default as the default profile rather than global per convention.
	- Allow main tank filter for raid groups to get list from oRA or CT_RA
	- Fix Ticket 328: Don't capture clicks on auras when frame is set Click-Through.
	- Avoid an error when not in config_mode and header:IterateMembers(true) is called.
	- Fix ticket 298: Profile switching was very buggy.
Cameron Knight:
	- for DogTagTexts, show the default codes box before the custom box.
	- revert the combo points change to show points on the vehicle frame, I was confused.
	- For vehicle-based combo points (e.g. Maelstrom weapon), show the combo point on the vehicle itself rather than on the target.
	- Properly fix unit_id_to_frames when updating units based on vehicle change (WoW 3.1)
	- For portraits, as a fallback to show a blank area or to hide the portrait completely.
	- add an asterix after wacky units and unit groups.
	- Allow coloring the power bar by class.
	- Allow the Aggro module to display optionally on the HealthBar, Background, or Border, instead of just the HealthBar.
	- change the Border module to reference self:GetTextureAndColor(), this allows it to be overridden, by say an aggro module.
	- add Border module.
	- make the happiness icon default to size = 120%.
vangual:
	- - Disable Totems module on wacky frames. (Way too wacky man!) - Hopefully fixed stray fontsizes - Timer now fixes wrong icons - Fix an old texture leak - Remove assert that wrongly fired during configmode
	- - Use newly provided control creation
Cameron Knight:
	- possible bugfix
	- use SecureButton_GetModifiedUnit rather than SecureButton_GetUnit, since it responds to toggleForVehicle. check the vehicle events and switch the units to what they "should" be when that occurs.
	- add Rune bar to HideBlizzard module.
	- Implement http://www.wowace.com/projects/pitbull4/tickets/5 - Ability to set the default font size
	- always show the texture dropdown, so people stop bitching. Put a message about installing the 'SharedMedia' addon so they know how to get more textures/fonts.
	- for Runes, if a rune is not available, make it fade out a bit. This creates more of an obvious difference for what runes are available (outside of the cooldown spiral)
	- optimize the scale calculations by caching the values beforehand.
	- take scale into account when positioning indicators.
	- Add Runes module
	- Minor tweaks to the controls system
	- bugfix when a unit is getting more than 100% healing at any one time.
	- Rename Banzai to Aggro
	- Make the Banzai module a bit saner.
	- add VisualHeal module, using LibHealComm-3.0. Mostly based off of the version from PB3.
	- for status bar icons, zoom the icons a bit.
vangual:
	- - Fixed icon placement in the latency module. Removed a magic number, added more comments and made the code more readable.
Cameron Knight:
	- remove some magic numbers
	- use Arcane blast as the example icon
	- if icon is that guy's head, just go with a blank space. That guy's head is creepy.
	- add the option to Auto-hide the cast bar when not casting something.
	- add support for bars to have icons. Add CastBar icon. Fix CastBarLatency to take the icon into account.
Shefki:
	- Fix a typo causing an error.
	- Fix ticket 253: All groups to be positioned with a slider in the config.
	- Move group positioning code into it's own function.
	- Fix ticket 290: Experience bar text sticking after bar removal.
	- Fix Ticket 257: Party images behind bars   2d portraits need to be parented to the portrait frame.
	- UpdateShownState needs to be delayed till we're out of combat.
	- Apply aura filter updates from Anseur.
	- Need to update the shown state of groups after changing include_player or the unit_group for the group.
	- solo is only an acceptable show_state for a group header when include_player is set.
	- Avoid an error in the warning code for the FakeUnitIDs.
	- Fix ticket 258: Errors with raid groups in party config mode.
vangual:
	- - Stop messing with frames we're not enabled on.
Shefki:
	- More Priest aura filtering updates.
	- Have to refresh the groups after changing their shown_when options.
	- Fix some issues with groups not showing when they should.   PitBull4:GetState() now returns "solo" when not in a raid or party.
	- Fix ticket 269: Mirror auras.
	- Fix ticket 276: Druid Mana Bar Text Isuses.   We need to force a full frame update if the DruidManaBar is removed   by our single module update.
	- Priest and Paladin filter updates from Trollpriest.
	- Fix ticket 224: Group frames moving when more columns are added.
	- Properly update groups after changing their Sort method.
	- Switch to some faster constructs from what Blizzard used in the code I "borrowed"
	- New AssignFakeUnitIDs() impelementation.  Should result in more accurate sorting of unit ids in config_mode.
vangual:
	- - Fix CastBarLatency display for channeling casts
	- - Allow more than one player-frame.
	- - Update Totem module to not expect .unit to be set. Possible Fix for Ticket #272 also.
	- Prepare center option for show-as-bar. Intentionally deactivated until I can get it working.
Shefki:
	- Remove an inaccurate comment in the code.
	- Update modules even if no unit is set on the frame.
	- Fix a spot where I missed checking that we had a valid unit.
	- Remove reference to unused Options/Groups.lua file.
	- Indentation error.
	- Forget to test if we weren't filter raid groups at all.
	- Avoid creating 40 unit frames for groups that are limited to certain parties within the raid.
	- Logic still wasn't quite right to get the exact number of frames we wanted to force created on a group header.  I swear it works right now.
	- After making a new group have to RecheckConfigMode() so that the new group will be forced to show.
	- Stop moving a frame when it gets hidden to avoid frames getting stuck on the mouse cursor if they get hidden while moving.  e.g. moving a party frame and someone leaves or joins the group.
	- When we're not in a party fake unit ids have to be generated for the player frames even if the unit exists.
	- Fix: Party pets et al frames We have to actually set the unit and then ask for the unit from SecureButton_GetUnit(frame) to have fake unit ids work properly for unitsuffix frames.
	- Only assign fake unit ids for config mode frames up to max frames not the number that currently exist becuase we may have more frames than we really need due to changing config, e.g. after turning include player off.
	- Prevent getting 2 player frames in a party with include player turned on and sort direction Descending.
	- Always create the right number of frames for a group, we were sometimes creating spurious frames we would never use.
	- Changing the sort direction of a group needs to force frame updates.
	- Avoid some unnecessary work since SecureGroupHeader_Update() is only being hooked for config mode.
	- Be sure to RecheckConfigMode() after a SecureGroupHeader_Update().
	- Short-circuit most of the code we don't really need if we've already st the frame up as ForceShown.
	- Stop hiding frames after making changes in config mode. ForceShow() needs to happen after we Show() the group header and we can't short circuit ForceShow if force_show is already set because the frame may have been hidden by SecureGroupHeader_Update. This is a result of no longer hooking Hide() during config mode.
	- Better solution to prevent force_shown frames from being hidden.   Also fixes ticket 263: Frames stick to mouse when dragging.
	- Fix ticket 260: Singleton Frames not properly hidden when disabled from config mode.  Very likely also fixes Ticket 223.
	- Fix typo in spellid for Focus Magic for Mage friend buffs aura filter.
Cameron Knight:
	- make it so group changes don't update child frames unless actually necessary.
	- it's current / max, not current / current. Should fix power bar issues.
Shefki:
	- Use the prefered UnitPower() and UnitPowerMax() functions.
	- Ticket 229: Hide PowerBar based on Power type.
	- Allow CastBarLatency to show on any frame representing the player.
	- Ticket 250: Configuration for Portrait Background
	- No longer assume .unit is set on all frames and remove some unneeded variables.
	- Remove unnecessary variable.
Cameron Knight:
	- don't give the DruidManaBar an example value.
	- no longer assume that :GetColor, :GetExtraColor, and :GetTexCoord will work if guid does not exist, always call the example functions in that case.
	- check for frame.force_show on frames rather than PitBull4.config_mode
	- bugfix with setting sort method
	- allow specifying order by group and order by class (for raids)
Shefki:
	- Avoid more taint, brings back some unnecessary updates in config mode but working frames are better than less CPU cycles in config mode.
	- Fix Ticket 233: Target frame not appearing.  Caused by taint from setting/unsetting Show and Hide() for config mode.
vangual:
	- Add CastBarLatency module
Cameron Knight:
	- handle posiioning of the header label a lot more flexibly, to handle different directions sanely.
	- add group header labels in config mode.
	- add raid filtering
	- add docs for PitBull4:GetState()
	- make sure to create the group header when making a new one through the config.
	- make 5-man (or less) raids act as parties if everyone is in the same group. This occurs in arenas.
	- add an extra check to make sure raid frames only appear when they should (will be important when we treat 5-man raids as parties)
	- bugfix with removing layouts.
	- Bugfix for GroupHeader.lua:458: attempt to perform arithmetic on a string value
	- normalize most of the function and variable names to be snake_case rather than scrunchedcase or camelCase.
	- allow party groups to be shown in solo when player is shown, thus allowing you to just use it as your standard player frame.
	- allow showing player in party groups.
	- make it so OnMouseUp where button = "LeftButton" also acts as OnDragStop
	- fix a bug caused when switching from a raid unit group to party and vice versa.
	- some bugfixes
Shefki:
	- Only cancel buffs on our own frames.
Cameron Knight:
	- add situation filter so that groups can be hidden in party, raid10, raid25, and raid40 separately.
	- add default groups. currently just party and partypet.
	- allow changing config mode to raid10, raid25, and raid40. Don't show raid frames in party mode.
	- make things work sanely when switching a group header from a party to raid and vice versa.
	- structural changes for group headers. Also allow headers to set their unit group.
	- rearrange the unit and group options to allow for arbitrary addition and removal of units/groups. Currently, groups can be added/removed, but not units.
	- lots of changes to headers to make them unique on name rather than classification. Also rework the concept of classification.
	- Start fluid group code
	- Start fluid group code
Shefki:
	- Ticket 83: Add partytargettarget and partypettargettarget frames.
	- Ticket 236: Option to hide DruidManaBar when at 100% Mana.
	- Properly handle knowing if an aura belongs to the player on 3.1.0 PTR. Due to the API change that precipitated this, auras applied by your totems or vehicles will now show as yours.  Yes this means Malygos Phase 3 debuffs show as yours.
	- Fix text on DruidManaBar.  Another case of needing to force a full frame update when a bar is created so the text provider will get trigger. This is a workaround for ticket 205.
	- Don't hide the DruidManaBar when you hit 100% mana.  ckknight why did you do this?
	- Improve the assignment of fake unit ids so that units for party pet frames line up with the party frames.  There might be a better way to do this, but this works for now.
	- Fix ticket 110 - Party Pets not ordered correctly. We can not use Pet Headers because they check if the unit exists and if not takes it out of the sort order and as a result the order ends up not matching the super classification group.
	- Filter changes for PTR 3.1.0
	- Fix ticket 230, error when respecing a Shaman. Move CHARACTER_POINTS_CHANGED handler after definition of can_dispel.
	- Oops the fix to FakeUnitID generation was bad.  Take into account unitsuffix.
	- Need to force frames on a group header to update after they are forced to exist because the hack that creates them shuffles the unit ids around and they can end up displaying incorrect info in config mode.
	- Remove some now unnecessary code.  Since we have a Show() and Hide() implemented for config mode we no longer need to stop watching a unit and start watching again when we leave config mdoe.
	- Don't recalculate the position of frames when they are locked when a drag finishes.
	- Fix ticket 190 - party frames moved when locked.  This should also fix a couple other movement complaints for party frames.  Party frames will no longer seem to snap after releasing unless they really are snapping to another frame.  This was caused by an error in the calculation of position accounting for scale.
	- Properly handle focus frame in config mode.
	- Properly handle changes to the party while in party config mode.
	- Remove some debug code I accidentally committed.
	- Whitespace cleanup.
	- Fix ticket 201 - Party Config mode error.  Use the right unit id for the group header rather than hardcoded to partyN.
	- Workaround for ticket 209.  - Error 132 and Aura Filter Editor.
	- Fix ticket 214 - Aggro indicator (Banzai) gets stuck.
	- camelCase cleanup in CastBar.
	- Revert "update player cast data every tick, as sometimes incorrect info pops up and player is too important to get wrong"
	This reverts commit 03fe5156964c3f6b1218d35109af5ba84d2b405c.
	- Revert "rearrange things a little, also put pet and target on the fast data update."
	This reverts commit 25a68386a0799a49609bd6b1f32c0d8ac6a87089.
	- Fix ticket 156 Castbar flakiness. The break was misplaced so if the first frame we found didn't have a castbar then we would remove the cast info from the cache and it wouldn't display for any from for that guid.
	- Fix some Shaman default Aura filter issues.
	- Fix tickets 121 and 129 - errors creating new elements in a new layout
	- Update default aura filters for Mages.
	- Fix ticket 206, error with simple mode of aura filter editor  on mages.
	- Fix ticket 181: Indicators on Party Frames Stuck After Config Mode.
	- Fix ticket 92 - Reputation Bar Text is 'stuck'
	- Fix error when using custom color with Experience bar and you have rested xp.  Fixes http://www.wowace.com/projects/pitbull4/tickets/185-experience-bar-causes-crash/
	- Allow debuffs you can dispel to show on Default debuffs, mine filter.
	- Fix an error when making a new Name filter.
	- Trailing whitespace cleanup
	- Add Aura Filtering.
vangual:
	- minor speedup for highlight change
	- add option to turn off mousehover highlighting, fix ticket #178
Shefki:
	- Fix a bug that prevented Other Unfriendly Aura border colors from being changed.
	- Apparently we hadn't used AceHook-3.0 previously, include in .pkgmeta/libs.xml
	- Add LibBanzai-2.0 to the libs.xml file.  Oops.
	- Use the right URL for LibBanzai-2.0
	- Add Banzai module.
	- Sort auras by what we can dispel.
	- Fix trailing whitspace.
vangual:
	- - Remove some resizing that has become redundant as indicator
Shefki:
	- Allow auras not applied by yourself to be removed.
	- Treat temporary weapon enchants as belonging to the player since we have no way to be sure and it makes more sense for layout purposes.
	- Avoid repeated table lookups on the set_direction_point dispatch table.
	- Add support for smaller rows laying next to a partial larger row.
Cameron Knight:
	- rearrange things a little, also put pet and target on the fast data update.
	- update player cast data every tick, as sometimes incorrect info pops up and player is too important to get wrong
Shefki:
	- Properly calculate the y offset for the new row with some oddball settings.
Cameron Knight:
	- Add texture selection for combo points. Doesn't show if there is only one texture (which is how it is currently). Send me some textures, people.
Shefki:
	- Fix trailing whitespace.
	- Retitle the new row on resize based on growth direction.
	- Cleanup some variable use to avoid unnecesary locals and unnecessary table lookups.
	- Add option to force a new row of auras when size of auras changes.
	- Trailing spaces I misssed.
	- Add Size to Fit for Auras.
	- Consistently use a comma on last list entry.
	- Remove trailing whitespace.
	- Allow separate sizing for auras cast by player from other auras.
Cameron Knight:
	- change combo point texture to a custom white texture that fills up the whole texture instead of a small portion. Allow changing spacing for combo points. Allow changing color for combo points, defaults to a tinted yellow.
	- bugfix for highlight in config mode
	- bugfix allowing indicators to be sized arbitrarily.
	- Bugfix for bars positioned on the right. Allow texts to be positioned different based on whether it's a horizontal or vertical bar or whether it's an indicator.
	- Allow positioning of portrait as a bar in the center. This will cause it to take on a rectangular shape rather than square.
	- Fix bug where portrait couldn't be set to not position like a bar.
	- add an option to highlight the frame when it is equivalent to your target.
	- add arena unit ids as valid. Maybe it works, I dunno.
	- bugfix
Shefki:
	- Protect against nil keys for guess_spell_icon.
Cameron Knight:
	- Add Sounds module, which plays sounds when you gain PvP, or when you gain/lose target/focus.
	- Make :RunOnLeaveCombat when you just entered combat but not in lockdown yet. (still inside the PLAYER_REGEN_DISABLED event). This fixes automatic turning off of config mode.
	- allow modules to actually override texts properly.
	- Make ManaSpark work with the DruidManaBar.
	- force a portrait update on UNIT_PORTRAIT_UPDATE
	- bugfix with setting a bar position
	- add UnitFrame:GetFont. Should simplify some logic as well as allowing custom modules to get fonts standardly.
vangual:
	- Make use of new font system; Change modtype to indicator
Cameron Knight:
	- Add font options for indicators if they specify show_font_option / show_font_size_option on their module.
	- Provide :GetFont for indicators, to be used by custom indicators that show fonts. No options yet.
	- remove the unnecessary id field on controls.
	- Add BarModule:GetTexture
	- rename IconModule to IndicatorModule.
	- remove the custom_indicator module type. icon can be used instead.
	- remove custom_bar, as it could be done with just bar.
	- make the :Call* methods for bar provider modules private.
	- make the :Call* methods for fader modules private.
	- make the :Call* methods for icon modules private.
	- make the :Call* methods for bar modules private.
	- add more support for custom_bar
	- add custom_bar module type
	- some renaming fixes
	- Change status_bar to bar
vangual:
	- Revert "Add an LDB Launcher and LDBIcon support"
	This reverts commit daf2aee03ca75d3b57d6a311712b352e3f2688f6.
	Reverting this commit as it has been commited in mainline with some optimisations.
Cameron Knight:
	- document the layout process.
	- include the DataBroker libs.
	- urg
	- add custom pitbull icon (hooray for the GIMP). Swap left/right click on the minimap icon.
	- add LDB launcher support. Much thanks to Vangual.
Shefki:
	- Set the frame level for auras.
vangual:
	- Ensure correct framelevel
Cameron Knight:
	- make group headers a framelevel higher than unit frames so that all unit frames have a consistent framelevel.
	- make frame levels of indicators be +3 instead of +2 from frame.
vangual:
	- Add an LDB Launcher and LDBIcon support
Cameron Knight:
	- raise indicator frame levels to be one above bars. Fixes http://www.wowace.com/projects/pitbull4/tickets/76-2d-class-portrait-is-hidden-behind-bars/
	- Allow indicators to be positioned in the same space as bars. This will allow portrait to be placed on  the left and clickable. This option is available for all indicators, not just portrait.
vangual:
	- Greatly simplified sound system; Made LibSharedMedia completely optional
Cameron Knight:
	- make dogtag text box width = 'full' (thanks to Vangual for pointing it out)
	- Fix example DogTag CurMP => MP
	- give font strings shadows. I might make this configurable later.
	- simplify some logic. Make it so texts can be positioned against one another and indicators rather than always being put on the end.
	- merge the text/indicator positioning logic.
	- whoops, fix some references
	- change providers' layout_db.bars => layout_db.elements, same for texts.
	- bugfix
	- To simplify things, store bar and text providers as frame[module_id .. ";" .. element_id] as well as frame[module_id][element_id]
	- make text providers key on name rather than a numeric ID. This simplifies things immensely.
	- remove a print statement.
	- Some localization stuff. When a new layout is seen, call :OnNewLayout on all modules, this'll let providers set up defaults. Allow changing of bar provider bar names.
Shefki:
	- Only show sample weapon buffs when they are enabled for the frame.
Cameron Knight:
	- Give CastBar a 40% example value.
	- Fix fader modules by referring to the correct field.
	- don't disable the "Current text" box if the module is disabled.
	- Change how libs are loaded.
	- localize "Default"
	- Turn BlankSpace into a status_bar_provider instead of a status_bar
	- add status_bar_provider module type. This is a module type that produces multiple bars.
vangual:
	- Minor cleanup
Cameron Knight:
	- [DogTagTexts] add Absolute and Percent for Power. Add some checks to make it so all codes are cleaned.
	- bugfix
	- allow bars to nil out values (useful for BlankSpace). Make BlankSpace nil out deficit and background color.
	- disable modules in the colors section if the module itself is disabled.
	- for texts and indicators, don't show disabled bars in the attach to section.
	- disable options for non-bar modules.
	- don't make disabled bars show up in the bar position listing. if a bar is disabled, disable all its options.
Shefki:
	- Fix an error with weapon enchants in some rare cases.
Cameron Knight:
	- make the custom color toggle update the bar color.
	- Add options to change profiles. Make it so switching profiles actually works.
	- make the config update if you enter/exit combat.
	- disable a bunch of options when in combat lockdown.
	- Make frames snap to one another, for easy positioning.
vangual:
	- Introduce per-Element colors; Add some minor optimizations
	- Changed border to fix "black corners". Would be cool to let user decide on the broder texture.
Shefki:
	- New border graphic for Aura.  Similar to the one used by CaithUI.
	- Sorting and Config mode improvements.
vangual:
	- Add config mode support
	- updated upvalues
	- Internal spacing is honored as Indicator now too
	- Ensure correct spiral update
	- Fix linebreak scaling
	- Totems: remove offsets, we're an Indicator now.
	- Totems: Switch to new central color options.
	- Totems: final step of the rename (in-code)
	- Totems: Apply rename to xml properly this time.
	- Revert "Totems: Preparing rename"
	This reverts commit 5e9b1a06c7790a4f5ab84516a04a3ba1111d8057.
	- Totems: rename module folder
	- Totems: rename main file
	- Totems: Preparing rename
	- pbtt: Removed option totemsize pbtt: Fix all known sizing sizing issues
Cameron Knight:
	- fix an indicator positioning issue for Outside, Bottom
Shefki:
	- Add Sample Weapon Buffs in Config mode. Bug fixes to sorting.
	- Upvalue changes.
	- Add initial sorting implementation to the Aura module.
	- Switch to using GUIDs to track what needs updating in Aura module.
	- Use a pool of table entries to allow us to remove entries from the aura list so that we can use table.sort.
	- Allow Aura colors to be reset to default.
Cameron Knight:
	- reverse some reverse logic.
	- allow changing the low/med/high health colors.
	- un-break Aura
	- add color options to HealthBar
	- Make Module:SetColorOptionsFunction have the last return be a function that resets all colors.
Shefki:
	- Move color options for Auras into the new color system.
Cameron Knight:
	- make it possible that :GetExampleValue (and the like) might pass in nil as the frame
	- add color options to Background and Highlight
	- add custom coloring for all bars.
	- add reaction color options. Make the reputation bar and health bar use it.
	- Add changing power colors. Make PowerBar and DruidManaBar use it.
	- add a separator between the colors and the reset button.
	- add a Colors section. Make HealthBar use it. Currently only allows overrides for class.
	- implement :GetExampleValue for CastBar
	- a frame after setting a 3d portrait, verify that the model exists, if not, clear and update again. This fixes http://www.wowace.com/projects/pitbull4/tickets/38-portrait-refresh-updating/
	- Some portrait fixes
	- Rename Modules in the Layout Editor to Other, since it only shows a small subset of modules.
	- Fix http://www.wowace.com/projects/pitbull4/tickets/77-flashing-text-with-outline/
	- make healthbar color work for units that are friendly but out of range (partypets)
	- Make partypet frames actually work.
Shefki:
	- Add support for temporary weapon enchants to the Aura module.
vangual:
	- pbtt: Fix black-font bug
	- pbtt: Cleanup pass
	- pbtt: Major Layout changes, now actually use pb4 layouts properly, introduced minor bugs along with it
Shefki:
	- Fix an error while mousing over auras in config mode.
Cameron Knight:
	- bugfix
Shefki:
	- Fix localization on sample auras.  The debuff_type should only be localized for display not in the internal variables.
	- Deal with Enrage debuffs that have the wrong debuff type set.
	- Helps when you actually set the variable.
	- Prevent errors on unknown debuff types.
Cameron Knight:
	- bugfix
	- fix a bug in auto_table__mt.
Shefki:
	- Color by class is only done for player units not NPCs so adjust some tooltip text.
	- Fix bug with Hostility Color NPCs option not working.
Cameron Knight:
	- Various fixes
Shefki:
	- Fix a typo in the color setting for civilian.
	- Small typo with adding coloring to Healthbar.
	- Add coloring by hostility, tapped, disconnected, dead, and so on to HealthBar.
	- Remove script hooks when disabling Highlight module to avoid errors.
	- Add RemoveFrameScriptHook to compliment the AddFrameScriptHook method.
	- Add BlankSpace module.
	- Get rid of cooldown to describe the time remaining on an aura.
	- Add a missing period to a description.
Cameron Knight:
	- properly change the scale of groups.
	- Fix http://www.wowace.com/projects/pitbull4/tickets/47-config-mode-enables-target-frame/
Shefki:
	- Make some strings use the localization system that were missed.
Cameron Knight:
	- remove the general options section, just stick it at the top, available all the time
Shefki:
	- Fix some inconsistent casing in the options text for the Aura module.
Cameron Knight:
	- fake commit to kick the packager
	- mess with some locale stuff
	- Convert a whole bunch of indicator spacing constants into layout options.
vangual:
	- pbtt: Rollback one of the default changes.
	- pbtt: More Options and defaults cleanup. pbtt: Fix spiral making the text timer unreadable pbtt: Reintroduce frame offsets, Note: they don't work as expected yet.
Shefki:
	- Initial addition of the Aura module.
Cameron Knight:
	- add a way to lock frame movement.
	- change the layout editor's layout a bit. Add a way to delete layouts.
	- position texts so that they no longer overlap. Fixes http://www.wowace.com/projects/pitbull4/tickets/44-texts-should-not-overlap/
	- add Click-through support.
	- make indicator position show in a lot saner format
	- make bar position show in a lot saner format
vangual:
	- pbtt: removed some debug codes and comments. (drycode)
	- pbtt: Configuration restructuring
	- - pbtt: Add Localization to TotemTimers Module - pbtt: Some option table cleanup. (dry)
Cameron Knight:
	- handle enabling and disabling of headers properly. Handle enabling/disabling of classifications in config mode properly.
	- possibly fix a weird bug with DogTagTexts
	- possibly fix a weird bug with DogTagTexts
	- move general options for bars and indicators (none there yet) under a general tab.
	- split up the LayoutEditor into multiple files, as it was getting unwieldy.
	- split off the layout parts from UnitFrame.lua
	- properly use AceLocale-3.0, now that the silent flag has been implemented. It only acts silent when in development mode.
	- add bar spacing and padding.
	- user power token instead of power type where applicable. this will make fuel and ammo show up on vehicles.
	- Allow spacing to be set per group. Add units per column/row, allowing you to have 2x2 party frames and such. Allow you to specify which way groups grow.
	- introduce the concept of super-classifications. party, partypet, partytarget, partypettarget would all have the super-classification of "party", since certain options such as sort method and direction would be the same.
	- support party-based groups, e.g. partypet, partytarget, etc. Force a fake unit id on fake frames.
	- Get config mode working with party frames.
	- Add options to change the x/y positions of units.
	- localize all modules.
	- localization fixes
	- AceLocale-3.0 is necessary now.
	- bugfix
	- Add localization (modules not done yet)
	- disable portrait module by default. Make the unit frame smaller by default.
	- Get VoiceIcon working in config mode
	- make ComboPoints show in config mode
	- make CombatText show in config mode
	- rename :HandleFontString to :AddFontString
	- make DogTagTexts module show [Name of Text] if the guid is nil and force_show is true.
	- make the frames show in config mode.
	- add initial config mode support. This doesn't show hidden frames, but it will show icons and bars that wouldn't normally exist. Note: there is an outward-facing API for config mode for addons like NShakedown.
vangual:
	- Add TotemTimers module. Same functionality as the PB3 equivalent. Needs some code cleanup still.
Cameron Knight:
	- do a check for frame.guid and module enable state before passing it to the module's :UpdateFrame, removing a lot of repeated code.
	- add Portrait module. Currently it's a custom indicator, so it's not placed as a bar as in PB3.
	- Add ManaSpark module.
	- add RangeFader module.
	- rename x.hidden to x.enabled and negated it. this makes more sense in most places. Disable the combat fader by default.
	- Add the 'fader' module type. Add the CombatFader module.
	- Clarify some logic in DruidManaBar. Add the Druid mana text.
	- make ThreatBar's :GetColor use GetThreatStatusColor
	- make ThreatBar work for party and raid members as well. Get the threat text working.
	- simplify some unnecessary logic
	- tweak to the docs
	- Remove the Hello Kitty module as a real module and put it into a doc file.
	- I think my last commit was odd.
	- Initial group support. Currently only party will work.
Andrew Holman:
	- Added druid class checking to addon
	- Changed tabs from 4 spaces to a tab for commonality.
	- Modified modules.xml to include DruidManaBar
	- Added DruidManaBar module for PitBull4
	- Fixed problem with division by nil when rested xp is non-existant.
	- removed DS_Store
	- adding my modules
Cameron Knight:
	- bugfixings due to UnitGUID("player") not being available on first login.
	- make DogTagTexts' default n is 8 instead of 7, since I added the experience text.
	- separate the Layout and Enable options (for units)
	- along with unit scale override, there is now a width and height multiplier.
	- if a module is disabled, don't show its options in the layout editor.
	- Allow "custom" modules to show layout options properly. If they return true as their first return, then they will be placed in the top-level menu of the layout editor instead of under Other. Add options for Background and Highlight.
	- Make health and power bars update every tick for every frame with the player or pet guids rather than set unit ids.
	- Add PitBull4:IterateFramesForGUIDs(...)
	- apparently some NPCs can be flagged as PvP, not flagged as PvP FFA, and not have a faction for some ungodly reason. In this event, show your own faction's PvP icon.
	- add the ExperienceBar module
	- make the reputation bar show colors properly
	- make the status bar module type handle extra values properly
	- add ComboPoints module.
	- add a special height modifier for custom indicator modules.
	- add HappinessIcon
	- add Module:UpdateForGUID(guid). make VoiceIcon work on a guid basis rather than unit basis.
	- add VoiceIcon (actually a custom_indicator, but mum's the word)
	- remove an unnecessary check.
	- add ReadyCheckIcon
	- add RestIcon
	- add RaidTargetIcon.
	- add PvPIcon
	- add MasterLooterIcon. Bugfix in the Layout editor.
	- add LeaderIcon module
	- indentation oddity
	- Add the HideBlizzard module.
	- add module-based options, including enabling/disabling modules on a global level.
	- add a button to open DogTag help.
	- don't fail on the npc unit id
	- Allow :IterateFramesForUnitIDs to have true passed in on the end to iterate over hidden frames.
	- clamp frames to screen.
	- make CombatText:UpdateFrame have a more accurate return value
	- add the CombatText module.
	- add the "custom_text" module type. This is useful for modules such as CombatText.
	- AceGUI has to be loaded before AceConfig
	- add the rest of the libs
	- now AceConfig-3.0
	- Add AceDB-3.0 now
	- add DogTag to .pkgmeta
	- update .pkgmeta with some libs (not done yet)
	- allow PitBull4:IterateModulesOfType take a tuple of module types rather than just one. Add the custom_indicator module type, which acts like Icon, except that you're expected to create the frame. Change the way indicators are scaled.
	- standardize how updating and clearing frames works between modules. Remove the "OnUpdate", "OnPopulate", and "OnClear" script hooks, as they're pointless now.
	- Make sure that :SetModuleType doesn't replace any values. Separate the "custom" module into its own file (even though it does practically nothing).
	- change PitBull4::IterateModulesOfType(module_type, enabled_only) to PitBull4: :IterateModulesOfType(module_type, also_disabled)
	- rename the module types textprovider to text_provider and statusbar to status_bar.
	- change PitBull4:IterateFramesForLayout(layout, only_shown) to PitBull4: IterateFramesForLayout(layout, also_hidden)
	- change PitBull4:IterateFramesForClassification(classification, only_shown) to PitBull4: IterateFramesForClassification(classification, also_hidden)
	- change PitBull4:IterateFramesForUnitID(unit, only_shown) to PitBull4: IterateFramesForUnitID(unit, also_hidden)
	- change PitBull4:IterateWackyFrames(only_shown) to PitBull4:IterateWackyFrames(also_hidden) and same for :IterateNonWackyFrames
	- change PitBull4:IterateFrames(only_shown) to PitBull4:IterateFrames(also_hidden)
	- Use AceGUI-3.0-SharedMediaWidgets for the texture and font widgets if it is available.
	- if LibSharedMedia-3.0 can't be found, use ChatFontNormal:GetFont() instead of hard-coding Arial. This will make it work for non-Westerners. If it is found, then validate "Arial Narrow" or fall back to the default that LSM specifies.
	- change onlyShown to only_shown
	- make the options frame wider by default so that it can fit 3 controls across the subgroup.
	- Add the ability to choose texture on a per-layout and a per-bar basis if LibSharedMedia-3.0 is available and has more than 1 statusbar texture. Same thing for fonts.
	- make :OnDragStop() just call :RefreshLayout() to keep things DRY. This will also prevent taint issues.
	- properly handle position with regard to scaling of both UIParent and the frame itself.
	- change verticalMirror to vertical_mirror (and same for horizontal_mirror). Add a scale override on a per-classification basis.
	- Allow changing size of the unit frames on a per-layout basis.
	- Make frame disabling work. This is done on a per-classification basis and acts as a special layout.
	- typo in DogTagTexts
	- bugfix for UnitFrame:IterateControls()
	- call module:RemoveFontString(font_string) when we're deleting it, so that the module can unregister it. Also some code cleanup.
	- Add the TextProviderModule type. Add the DogTagTexts module. Simplify some of the layout placement code.
	- change background and highlight modules to make the control they create using the same casing as the module ID.
	- split up the icon module's :GetTexture and :GetTexCoord functions. Pass in value to StatusBarModule:GetColor, in the case where you want to change color based on value (like health bar).
	- remove StatusBarModule:SetColorFunction, now it's just assumed that :GetColor will be the method to call. Same for :SetValueFunction => :GetValue and IconModule:SetTextureFunction => :GetTexture.
	- bugfix
	- have a set ordering for the layout editor
	- small optimization
	- bgAlpha => background_alpha
	- Move the module handling parts to its own folder
	- Split up Options into its own sections, put it in its own folder
	- Move some more things around
	- move some files around, use XML instead of the TOC to load up files.
	- change the naming of some things, split things up some more for clarity.
	- Move some functions around
	- some options-related bugfixing.
	- use self where it makes sense
	- Switch to using colon syntax most all places, as it was confusing to have some methods use colon syntax but some using dot syntax. Switch to using Ace3 for timers, events, module handling, and DB.
	- prepare for frame deletion
	- Add vertical mirroring. Tbh, I'm not sure a layout that would use it, but it could be cool.
	- Add the ability on a per-classification basis to mirror the layout horizontally. This is useful if you have a player frame and a target frame the same layout but want the target layout to mirror it (e.g. bars go other direction, things on the other side, etc.)
	- add real layout handling. Add setting of the layouts on a per-classification basis.
	- actually position icons and provide options for icons. get rid of all magic numbers in the layout (I think).
	- add a way for modules to register options. Add the "Color by class" option to HealthBar.
	- move the module types into their own files. Add a method to add new module types easily.
	- change .unitID to .unit, since that's what Blizzard expects for tooltips.
	- switch to using AceConfig-3.0. Add some actual options for bars.
	- Fix the way module registered functions are called.
	- Fix up some code, initial icon support
	- fix .docmeta
	- .docmeta
	- simplify some logic.
	- make CastBar work a bit better. Show targettarget.
	- Add CastBar
	- possibly fix up .pkgmeta. Fix an issue in options.
	- add Options, doesn't do much, but it does allow positioning of bars.
Cameron Kenneth Knight:
	- Add ReputationBar Make layout handle statusbar modules arbitrarily (not hardcoded) Make statusbar layoutDB have default defaults (yes, the defaults have default values if not provided) Add more features to the status bar positioning.
	- Add some more comments.
	- Fix some minor typos
	- Some doc fixes
	- Rearrange some logic
	- Separate out some logic, simplifying things.
	- Cleanup BetterStatusBar.lua
	- A whole bunch of changes. Add health bar and power bar. Add creation of controls and such. Separate out some things for clarity. There still needs to be a bit of work to make the code more following the arbitrary rules I set.
	- Add basic module support. Separate the db section from the main, lots of hacking there. Add two simple modules: Background and Highlight. Add a way to create and delete controls Add basic argument checking (only occurs for alpha packages) Make tooltip-on-hover work Make right-click menu work, as well as left-click target.
	- Small bugfixes, make it create initial frames (currently only player). Add ClickCastFrames support.
	- Make sure to remove star defaults when logging out
	- Add the ability to have * keys in tables, no ** yet. Change classifications to be handled by the defaults system
	- Change @debug@ to @alpha@
	- Add Version to TOC
	- Change name to PitBull Unit Frames 4.0
	- Make a bit of logic more understandable Add in defaults handling
	- Initial commit
