Use pkg-config to find Lua

Use pkg-config to find the right include paths for Lua when generating
config.rs, and to find the right library name to link against.

Pull LUA_VERSION, LUA_RELEASE, and LUA_VERSION_NUM from config instead
of hardcoding them.
Build examples when running `make all`
Split `make test` into two targets

Define `make test-lua` separately, so multiple invocations of `make
test` don't have to unnecessarily rebuild the test suite.
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>.