Add more format_string functions to overload existing ones.

Add all four combinations of:
- format string as std::string or as const char*
- parameters as ellipsis or as va_list

Formatting is only done in one of them, the other three forward the call to that one.
The functions using the va_list are named vstring_format.
Add wrapper for fold_and_print and fold_and_print_from that use a const std::string as single formatting parameter.

The new functions don't do any formatting and simply use the provided string as is. On several places those functions are called with already formatted strings.
The original functions do the formatting as usual and forward the formatted string (along with the other parameters) to the new functions.

This removes the second and unnecessarily formatting, instead of
  fold_and_print(..., "%s", text.c_str());
one can write
  fold_and_print(..., text);
Changed calls to fold_and_print that use an already formatted string to call the new functions directly and bypass another formatting.

This fixes several places that could crash if the supplied string contains format specifier.
remove double formatting, center_print already does formatting.
Remove the formatting in shortcut_print.

It is nowhere used. If needed one can use string_format to format the string and pass the result to shortcut_print.
This removes some possible problems when user of that function are not aware that it does formatting and include a format specifier in the string.
Fixed usage of popup related functions.

Those functions do formatting, no need to do it before.
Also don't pass a formatted string as first argument.
Condense five popup functions to one function with additional parameter.

These function were already nearly identical. The difference has been
encapsulated into flags and moved to the new function.

Also the new common popup function does not do formatting. It is now
used in some cases where the formatting is already done.
Fix wrong usage of query_yn, it does the formatting for you.
Fixed some calls to debugmsg that used already formatted strings.
Replace calls to vsnprint in uimenu.cpp with calls to vstring_format.

This also adds the missing va_end calls (and fixes the possible bug).
Make vstring_format safe for any input length.

And replace all the other calls to any printf function in output.cpp with calls to vstring_format, so they are all safe now.
Add a hack for Microsofts behaviour of vsnprintf
std::vector<>::data is C++11, replace with portable version.
Remove more direct calls to printf and use string_format instead
Remove double % from item info.
Profession description is translated when it's loaded, no nead to retranslate it.