Add simple type -> type name string compile time reflection stuff

This is needed for passing types to the LuaJIT ffi.
Convert the unicode lua module over to using the ffi
Convert the lfs module to using the ffi
Extract some common ffi API stuff
Convert the re module over to the LuaJIT ffi
Add lua argument checker
Shut up strdup "deprecation" warnings