Implement tooltip scanning based item opener

This replaces the hard-coded item openers with a tooltip scanning version;
instead of coding up a hand maintained list of items that can be opened we
scan for the global string injected into the tooltip by WoW.

This is reasonably fast, and only needs invocation when inventory changes.
To avoid encoding complexities like lockboxes that become openable, but only
after being picked, we don't cache data at present.

In testing, this is fast enough that I am unable to detect either a frame rate
drop cost from this change, or enough CPU use to register in a significant
fashion in the built-in CPU profiling tools.

The implementation is generic enough that it can be reused with more than one
opener, and will only scan each item tooltip once no matter how many patterns
are active on each change.

Signed-off-by: Daniel Pittman <daniel@isara.local>
Tabs for indents!
Bring in tooltip scanner external
Simplify down the item scanner
Merge openable item stuff into one file
Fix tooltip scanning on initial login