Decode C-like-encoded filenames by git

This is an attempt to fix issue #581 using a modified version of the code I mentioned in that bug. Not much tested yet, but it already allowed me to stage/unstage/diff some files with quirky names (including some backslashes) properly. I hope I didn't miss places where filenames should be decoded.

I'm not an experienced github user nor even programmer, please forgive mistakes (and report them to me).