Large patch, work on bindings/IDE

- Added IO bindings module
	- Things like script loading, etc
- New error codes, see core/error.c
- Rework engine/render.* code to dispatch calls to Lua state
- Lots of work and fixes on existing bindings code
	- Fixed incorrect stack parameter indices in C code
	- Functional drawing via Lua scripts for grids. Need to clean code
	  and make sure things work smoothly when other types of objects
	  are implemented.
- Fix/tweak some stuff with scene code so it works a little smoother with
  Lua code
- Re-add IDE
	- Will be implemented exclusively through Lua scripts
- Future work
	- Documentation for Lua API
	- Robust API for userdata objects
		- e.g. Rework how scene_object stores instances, so they
		  can be hidden/shown without having to remove them
		  completely. Also make it a bit more efficient when
		  instances are removed: data won't have to shift around
		  until the scene_object is sufficiently dirty.
	- Cleaner support for non-instanced scene_object: All objects
	  are technically instanced now; non-instanced simply have only
	  one instance. Perhaps use a union for model matrix and data
	  pertaining to instances (num, max, array ptr, etc).
		- New instance_buffer type?
	- Better error reporting from C code: more verbosity
	- Robust parameters from C code: adhere to common Lua idioms when
	  dealing with things like missing parameters, etc. Wouldn't be
	  too bad of an idea to return userdata from metamethods so
	  calls can be chained, e.g. inst:translate(...):rotate(...)