Debug entity upvalue
So it turns out arrows have lurking upvalues...
I rewrote table.check so it gives more information and can be passed a do_recurse function. (So I could actually find the upvalues). I gave talents and talent-types a __CLASSNAME field so they're not treated as tables to be copied. (And so aren't checked for upvalues). A projectile's "def" table now has an _allow_upvalue flag, to account for the "block" upvalue that's already accounted for in the code.