Check if userdata is nil in compat before call

Calling a userdata function on nil halts the script, which is bad. We
will return false instead.
Move getItemIdByName to compat.lua
Remove healMap (removes Creature:getHealMap)

The heal map was never utilized other than providing the functionality
for the Lua function Creature:getHealMap (which was a new function
anyway, so hopefully this doesn't break any script).
Move getPlayerSlotItem to compat.lua

This commit also adds item:hasSubType(), and pushThing to compat.lua