Convert C# strings to UTF-8 Lua strings, and visa versa.

(... instead ANSI encoding, as before). When converting Lua string to
C# string, invalid UTF-8 sequences in Lua strings are replaced with
Unicode Replacement character U+FFFD.

Also fixed lua_pushbytes() handling of empty byte arrays.