Rename CI_Utf8::_is_ascii() to is_ascii() and make it public

No reason for it to be protected.
[ci skip] Micro-optimization
[ci skip] Don't use output buffering in URL helper safe_mailto()
Enable write_file() test
Fix #2884
[ci skip] Minor tests adjustments