Enhance capability of string conversion functions

The convert_windows_string() function no longer has a set limit on the
string size it is able to convert. Enough memory should be allocated to
hold the entire string.

The same can be said for the new convert_unix_string() function. This
was created to replace mbstowcs_s() with MultiByteToWideChar().