Generalize Utils#slugify for any scripts

Instead of keeping only characters `a` to `z` and `0` to `9` plus the hyphen, it replaces any non-alphanumeric glyphs by an hyphen and generally follows the same rules as before. But it supports Unicode characters.
As far as I can tell, Unicode in regexp is supported from Ruby 1.9 onwards so it shouldn't be too much of a problem with Ruby 1.8 not being supported anymore.

This PR is there to show what I meant when commenting on #2965. I added a few tests that I could think of, please tell me if we can make it more complete.