Minor backend improvements.
Fixed bug preventing use of Lua.GetTable.
See these MonoLuaInterface commits for evidence that it is in fact a bug:
"isolating use of code generation" https://github.com/stevedonovan/MonoLuaInterface/commit/524d4fa37e675fd5906613aea20d8aa0d3eaaace#diff-b28e57a1edb688148476e3d9a095dba8L520
"__NOGEN__ build without dynamic code generation" https://github.com/stevedonovan/MonoLuaInterface/commit/524d4fa37e675fd5906613aea20d8aa0d3eaaace#diff-b28e57a1edb688148476e3d9a095dba8L520
Replaced "DEPRECATED" comments with [Obsolete] attribute.
Added Lua.GetGlobals()
LuaTable code now targets C# 3.0 consistently.
Improved LuaTable documentation and added #regions.
Moved table raw access functions next to indexers.
Cleanup.
Added EXPOSE_STATE compile option which grants read access to lua_State and LuaBase references.
Relaxed pointless encapsulation and moved LuaTable specific code into LuaTable.
Improved lua_State management.
Misc backend cleanup, fixes, and optimization done while working on the previous commit.
Fixed Lua.IsExecuting to handle a callback executing Lua code. Improved internal delegates.
!! Breaking change for any code that used LuaDLL functions !!
Added intellisense documentation for all the LuaDLL functions
Shortened DllImport boilerplate
Changed most LuaDLL function parameter names to match the ones in the docs
Reordered and categorized the contents of LuaDLL.cs so it's more like lua.h
Added missing type LUA_TTHREAD to LuaTypes
Renamed LuaTypes enum to LuaType and renamed all of its members to have concise names
Renamed LuaGCOptions enum to LuaGC and renamed all of its members to have concise names
Added LuaStatus enum for the return value of lua load/call functions
Moved LuaIndexes values to a new LUA static class that contains general lua constants
Fixed LuaRefs enum not being public
Fixed lua_call returning int instead of void
Added lua_concat
Removed deprecated functions lua_dostring, lua_open, lua_strlen
Changed lua_equal, lua_getmetatable, lua_isuserdata, lua_lessthan, lua_next, lua_rawequal, lua_setfenv, luaL_newmetatable return type from int to bool (confirmed safe)
Fixed lua_error returning void instead of int
Fixed lua_getglobal using lua_pushstring+lua_gettable instead of lua_getfield
Fixed lua_isfunction, lua_islightuserdata, lua_istable importing nonexistent functions rather than implementing macros
Added lua_isnone, lua_isnoneornil
Fixed LuaChunkReader, lua_newuserdata, lua_objlen, lua_pushlstring, lua_tolstring, luaL_loadbuffer signature using int instead of size_t (UIntPtr)
Fixed lua_pushlstring, luaL_loadbuffer signature using string instead of IntPtr
Replaced lua_pushstring DllImport with a function that properly calls lua_pushlstring
Removed lua_rawcall (DllImport of nonexistent function)
Fixed lua_setglobal using lua_pushstring+lua_insert+lua_settable instead of lua_setfield
Added LUA.MULTRET for use in lua_*call
Replaced luaL_error import with an equivalent but safer C# implementation
Removed luaL_gsub
Added luaL_loadbuffer overload that takes a string
Moved indexers and Call() to LuaBase. Removed the last of the LuaBase support code from Lua.
Added LuaBase.ToString, which calls Lua's tostring() function internally. Removed inferior ToString implementations from the derived classes.
Added LuaBase members: Equals(LuaBase), FieldType(), ContainsKey(), Metatable
Added LuaTable members: LongLength, RawFieldType, RawContainsKey
Added LuaUserData members: Block, Contents
Changed LuaBase equality to use raw equality and provide a useful hash code. Non-raw equality is now implemented in the == operators and LuaEquals().
Refactored the way that LuaBase classes access their references to be more type-safe and standardized.
Sealed LuaTable/LuaFunction/LuaUserData.

Added Lua members: LoadString(string), DoStringFromFile, LoadStringFromFile, NewTable(string, int, int), NewTable(int, int), NewUserData
Removed EXPOSE_STATE and the members it exposed. Added LuaDLL.luanet_getstate and LuaDLL.luanet_pushobject functions, which are always available.
Improved the function calling code.
Made the single-argument DoString function set the correct chunk name.

Audited some backend code and documented its stack behavior.
Changed a lot of functions to manage balance intelligently rather than use gettop/settop.
Renamed "stackPos" function arguments to "index" for consistency.
Added and integrated StackAssert functions for verifying the behavior of methods that use the Lua stack.
Implemented some checks to prevent passing references from one Lua instance to another.
Reduced dependencies on ObjectTranslator.getObject.
Minor improvements.

Added LuaDLL.luanet_getnestedfield to efficiently do LuaInterface's sub-table navigation and replaced a lot of bad code with it.
Added lua_topointer, luanet_popboolean
Changed luaL_callmeta to return bool.
Renamed luaL_checkmetatable to luanet_checkmetatable because confusing.
Removed most of the Lua debug library by default to increase security.
Added Lua.NewPrintFunction.
Added some Lua error unit tests and a test based on MonoLuaInterface's CallLua.cs.
Moved LuaDLL.lua*_* functions to lua*.* in the LuaAPI namespace.
Cleaned up the lua_load declarations.
lua_pushstdcallcfunction was moved to luanet.pushstdcallcfunction.
lua_ref/unref/getref were moved to luaL. (luaL.ref needs the @ prefix in C# because ref is a keyword.)
(This commit is the first of a pair. This one contains the changes and the next one reorganizes the code.)
Split LuaDLL.cs into multiple files.
Replaced "IntPtr luaState" with "lua.State L"
Removed the LuaInterface.Lua constructor that took an Int64.
Changed LuaBase.rawpush to have the same semantics in both build modes.