string_util: add functions and conversion ulities

1. + IsStringASCII for both std::string and std::wstring.
2. + ToUnsigned<T> utility struct for converts a stringT::value_type value to its unsigned counterpart.
sys_string_encoding_conversions: add functions

1. + ASCIIToWide() functions for converting a string object that contains only ASCII characters to a corresponding wstring object
file_path: add argument validation and function

1. + AppendASCII() for convenience
2. + argument validation for some functions. if validating failed, function throws an invalid_argument exception. the newly added code is executed only in NDEBUG mode