Unicode support

These changes enabled my GateDiff shell extension to handle files containing "weird" unicode characters, e.g. the ones on http://www.alanwood.net/unicode/arrows.html, and also to display them in context menu.

However I'm not sure if adding CharSet.Unicode to all Interop calls is the best way to add Unicode support. Maybe there's some way to make it a default, but I have no idea how to do it.