Return error strings with "trivial" closure.
Return error strings with "trivial" closure.

Basically, this just returns an error string as a second return value, if a problem occurred loading the mo file.
This follows the Lua idiom established by e.g. io.open().
The client can now handle error conditions, if they care, rather than living with a mysterious, silent failure.
I also beefed up the first check for a valid path; `type(mo_file) ~= "string")` will catch nil as well as other types.

I checked that this file compiles and handles path errors reasonably.
I don't know the .mo format well enough to exercise the other error clauses, but they're pretty straightforward.
starius/mo.lua