string_input_popup: seperate the popup window generation from string
input functionality
add function string_input_window to output.h
uimenu: add generic callback functionality, quick filtering with '/', move into ui_container abstract base class, document functions.
* Filtering is case insensitive, find as you type. using the up/down pageup/pagedown keys while typing will scroll as expected
* uimenu_callback has triggers for highlighted items: select(entry_number, menu_ptr), keypresses: key(key, entry_number, menu_ptr), and refresh.
  Documentation and examples can be found in ui.h and wish.cpp
uistate: runtime states for wish selection, and advanced inventory filters
wish, monster_wish: Rewrite using uimenu which now provides a less
cumbersome means of searching
advanced_inv: quick-filtering, move to advanced_inv.cpp and into own class.
Further refactoring is pending, however the added functionality is finished.
Unused variables. Destroy them.
string_input_win: Correct left/right key usage in unlooped mode.
This is why I'm working on making it a class
advanced_inv.cpp: Big comment of unrequired includes: nuke
Eliminate sneaky unused variables
Check NPC: allows skill modification. Skill modification made function and moved to wish.cpp
Reapply styling and bugfix to skill mod code
check npc: Made selectable entries more obvious
checknpc: Less silly method of text display
Wish mutate rewrite: Now with unmutation and coloration of current traits
wish(mutate|item|monster): add runtime-persistent selection states
Merge hefty wish menu refactor.
Make the compiler happy with a virtual destructor.