Add first pass Lua scripting support