hfs+: rewrite percent-escaper (issue3918)

The original code was a bit too clever and got confused by some cp949
Korean text. This rewrite bytes the bullet and manually decodes UTF-8
sequences. Adds some doctests.

--HG--
branch : stable