Create Char trait
Code modernisation and cleanup
Use `///` style doc-comments and add missing headings
auto merge of #6597 : bjz/rust/core-char, r=brson