uimenu: bugfixes and additional helper functions
advanced_inv: remembers sorting and target setting across saves
uistate: saves persistent data to save/uistate.json
string_input_popup: line editing via arrows, optional persistent history backbuffer
* new arguments (str title, int width, str default, str description, str history_id, int maxwidth)
* if unset, max_width = width, or 1024 if width is unset / 0
* ^U clears line
* up arrow pulls up history if history_id is provided
* support for larger block of descriptive text above input

list_items: history for filters persists across saves
uimenu.title sets minimum width
string_input_popup: hitting 'd' in history menu deletes history
uistate.save: only save <= 25 history entries per category
Fix manual merge error
item inscription: enable input history, split description of note
from actual note
inscribe: string_format && constage
Enable input history for graffiti
fix conflicts: Merge commit 'f9073b9' into readline_ish_and_more

Conflicts:
	game.cpp
	iuse.cpp
sync / fix conflicts
No rarity.
No typos.
No \r for that matter.
Fixes a bug with displacement.

Due to fixing move_to to not work when there's something at the target location, displacement also broke. Added a "force" parameter(default false) for this specific case.
Fix wrong 'cancel activity' messages
Fixing "Preset Characters" menu offset weirdness.

Now when "Preset Characters" is selected, the list of presets will appear above that menu option, instead of the layer 2 menu being redrawn seven characters to the right.
Allow NO_UNLOAD guns to be unmodified while still un-unloadable. Fixes #2406.
Reinstate sorting the crafting menu, fixes #2431.