Patch 3.3.0/API changes

Quests

 * NEW - QueryQuestsCompleted requests that the server send the client a list of completed quest ids. Once the list is received the QUEST_QUERY_COMPLETE event is fired. (There is a limit on how frequently this can be called)
 * NEW - tbl = GetQuestsCompleted([tbl]) populates a table (creating one if necessary) with the ids of completed quests as keys with true values.

GUIDs

 * The format of NPC GUId's has changed, the creature ID is now two hex digits (8 bits) to the left, e.g. Hogger (0x1C0) is now xF13001C0000005D2 (formerly xF1300001C00005D2)

Widget API

 * The deprecated GetFrameType method has been completely removed (GetObjectType offers the same result)

Region

 * NEW - isOver = region:IsMouseOver -- Tests whether the mouse is over the region, replaces the MouseIsOver FrameXML lua function.

Button

 * NEW - Button:SetMotionScriptsWhileDisabled(enable) --Allows OnEnter and OnLeave to fire while the button is disabled.
 * NEW - isEnabled = Button:GetMotionScriptsWhileDisabled
 * This can also be set from XML: 
 * The registerForClicks property can now be set from XML.

Texture

 * NEW - width = Texture:GetFileWidth --Gets the width/height of the actual file in use by the texture. (0 if we can't access the texture for some reason) (Note: These currently aren't returning the right values for some Blizzard UI images)
 * NEW - height = Texture:GetFileHeight

Macros

 * The @ symbol has been added as a synonym for 'target=' to help avoid confusion and compact macros, you can do /cast [@focus] Obliterate
 * The following new macro conditionals have been added:
 * vehicleui : the PLAYER has a vehicle UI
 * unithasvehicleui : the target of the macro has a vehicle UI