Output: change single-character-output functions to accept a string

It should contain a UTF-8 encoded strings spanning a single output cell.
Change mtype::sym to be a std::string (UTF-8 encoded single character).
Use the changed output functions to print that character as the monster glyph.

Had to change hit_animation, too. It requires the glyph of the monster that has been hit.

Some single character output functions remain with the argument of type long as other code still uses them.

Changed Creature::symbol() to be const and return a const std::string reference.
Also some comparisons had to be changed to compare the symbol with a strings.

Doesn't yet work in SDL.
Extend single character UTF-8 to SDL tiles
Check monster symbol display width on loading

Print a slightly different message if analyzed corpse is a non-human zombie.
Analyzing will still succeed even when operated upon a zombie animal.
Apply pheromone effect (per iuse function) to all kind of zombie creatures.
Update the curses port for UTF-8

Use std::vector and std::string instead of plain arrays.
Use a single string for the content of each console cell. This allows unlimited amount of UTF-8 characters (several combining characters).
Change sdltiles to display UTF-8 strings per cell, instead of a single character.
Removed the glyph cached based on a static array and use the std::map based instead.
Handle multi-cell characters in sdll properly.
Restructure and astyle Font::draw_window
SDL: switch deletion of renderer and buffer.

The renderer might still use the buffer, so delete the renderer first and than the buffer.

Based on a hint from Chase-san
Make the windows curses port Unicode aware:

Use only wide character string functions (*W) instead of ANSII (*A) functions.
Add widen function to translate UTF-8 to wide character strings suitable for window functions.
curses_drawwindow: use the new structure of the WINDOW struct.
Consuming tools/items ignores the available setting:

This setting is part of the recipe and not stored in saves, upon loading it is gone.
That makes the game think it has no items/tools at all available.

As it makes the parameter force_available useless it is removed, too.

Add debug messages when a recipe id is invalid
Restore player::lastrecipe upon completing a recipe
Fixes using eye drops with zero charges.
Merge branch 'unicode-symbols' of https://github.com/BevapDin/Cataclysm-DDA into merge
Merge branch 'fix-crashing-bug' of https://github.com/BevapDin/Cataclysm-DDA into merge
Merge branch 'eyedrop-fixes' of https://github.com/Rivet-the-Zombie/Cataclysm-DDA into merge