MESSY now works for NPC's and player hits.
Merge branch 'master' of https://github.com/CleverRaven/Cataclysm-DDA into MESSY_NPC

Conflicts:
	src/melee.cpp
Removed redundant includes, made virtual functions of monBloodType and monGibType. (needed to remove some includes to remove compiler errors).
define height of the sort_armor window according to worn.size()
Returns a burnt_out_bionic when the player successfully removes a bionic.
Cyclists
Fixed the whoops! in the description
Make the format parameter to string_format an obect, not a reference

Apparently va_start does not like to work with references.
remove input_manager::action_to_input

The default context is now part of the action_contexts map.
The loading code would put input events for the context "default" into action_to_input, so action_contexts could never contain an entry for key "default".
Making this two separate members complicates both loading and saving the data and has no actual advantage.
implement input_manager::save to save keybindings
add functions and user interface to change keybindings
Add some keycode names and return unknown key xxx for those.
Add portable output of input_manager::get_keyname

This is used to store keycodes in the keybindings file even if the program does not know the names of those keys.
So ifthe user enters a key that the program knows no name for, it will still work, only be displayed as "unknown key xxx".
use fold_and_print in input_context::display_help
make the list of keybindings scrollable
add indendation
slight changes to input_context::display_help:

added comments
moved some parts outside the loop
cleared color calculation
made input_context::get_desc return "Unbound!" to eliminate special case handling
make it a while(true) loop
when changing keybindings check for conflicting keys
use input_context in bionics menu