Cleaned up optional lua functionality for debugging.

* Basic lua initialization
* Customized lua bindings generator with bindings for player, monster, item, uimenu and more
* Wrapper function for iuse so that if lua is enabled, lua functions can be called as well as C++ functions
* Debug option to call arbitrary lua code interactively
Added documentation for working with the lua framework.
Use pkg-config to find lua.
Made generating catalua/catabindings.cpp a build step.
Added lua linking for windows(untested but should work).
Added all kinds of *.pc names for lua5.1

Dammit, distros, get it together already!
Added missing data/main.lua

It's been sitting here all this time and I never noticed it wasn't checked into git.
Functional way to write all the .pc alternatives
Fixes recipe category for metal rail ammo.
Added "WATCH" flag to PDA.
Merge item flag fixes.
Open artifacts.gsav in truncate mode to prevent it doubling in size each time we save.
Changed to std::ofstream::trunct instead.
Clear current itypes before loading new artifacts.
Delete current artifact ids before loading new ones.
Change version text to 0.9
Increment makefile version
Return absolute value instead.

Signed-off-by: Tommy <yobbobanana@gmx.com>
Merge pull request #4327 from yobbobanana/mergemergefix

Fix vehicle teleport bug.
Fix halloween_special.json json.