Work around rust issue #11040
Work around rust issue #11040

As documented in Rust issue #11040, on Linux, Option<extern fn> is
returned using struct return conventions instead of being immediate.
This poses a problem when it's being used as the return type from an
extern C function. To that end, on non-Mac/Windows, declare
lua_tocfunction() as returning *libc::c_void and wrap it in another
function that casts this pointer to an Option<lua_CFunction>.

trevex/luajit-rs,green-panther/rust-lua,kballard/rust-lua,green-panther/rust-lua,kballard/rust-lua,tempbottle/rust-lua,beatgammit/rust-lua,tempbottle/rust-lua,trevex/luajit-rs,beatgammit/rust-lua