Fix s-reverse for Unicode combining characters.

When reversing a Unicode string, care must be taken to reverse characters with their combining marks as a single unit, maintaining their order.

* https://github.com/mathiasbynens/esrever
* http://www.cl.cam.ac.uk/~mgk25/unicode.html

Before this patch, `s-reverse` does this (NFD normalized): 

~~~el
(s-reverse "naïve")
;; => "ev̈ian"
~~~