vangual:
	- cleanup
	- Add upvalue for StaticPopups.
	- Remove unused library instance
	- Add ShareConfig module to modules.xml for development setups.
	- Initial import of module Shareconfig.
	- Add pkgmeta references to ShareConfig and its dependancies.
Shefki:
	- 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
