Belatedly update coding style.
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
monmove.cpp refactor #1

- move_to() now actually checks whether the movement is possible, and if not returns 0.
- Factored out attacking and bashing into their own functions and called them from move() and move_friendly()
Alter mfb() to cast as unsigned long instead of signed
*_move functions now do not affect monster plans and renamed sound_move to wander_next.

sound_move wasn't a very good name, as it's effectively just "wander towards X", and might be used by other things than sound in the future.

Doing plans.clear() in the *_move() functions made it hard to use these functions outside the environment they are currently being called in. By having them as pure lookup algorithms, these functions are now much more flexible.
Merge PR #2416 - Monmove.cpp refactor
No rarity.
No typos.
No \r for that matter.