Fabrication Skill Recipe adjustments
Broke skill system into trained skills and required skills. Fabrication introduced as test case.
Merge remote-tracking branch 'origin/pr/1' into fabrication_skill

Conflicts:
	data/raw/recipes.json
Fixed indentation and missing braces.
Changed the name from trains_skill to skill_used
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
Adjust makefile for mac-specific ncurses library naming.
Allow disabling gettext dependency.
Remove redundant include of clocale, thanks wito.
Flip NONLOCALIZED define to LOCALIZE, and pass it in to compile jobs.