Implement LuarefGuard, move some more state to struct trigger

Miscallenous cleanups and refactoring.

Add comments to trigger.h
Implement LuarefGuard - a stack object to automatically
release a Lua reference on return or exception.

Add more context to struct trigger and get rid of specialized
objects in alter.cc.

Add optional 'destroy' to struct trigger, which is required
in space-luatriggers.