Added default wide-character typedefs

Added `immutable_wstring`, `immutable_u16string`, and `immutable_u32string` typedefs to match the default typedefs for `std::basic_string`. Also, made `.mutable_string()` return the proper string type.

Now, examples like

    std::wstring str1 = L"Hello, world!";

    cdmh::immutable_wstring str2 = str1;

    std::wcout << str2 << std::endl;

    std::wstring str3 = str2.mutable_string();

work.