This makes the logic for the rust type line up a bit more with the C++ logic for existing types, and adds support for 'char' and 'char16_t' native types (for 'charPtr'). This specifically enables `nsIInputStream::Read` to be used from Rust. Differential Revision: https://phabricator.services.mozilla.com/D152715