fix minetest.get_inventory(loc) always returning nil for "node" type loc

This appears to broke during the scriptapi split: The if(type == "node") condition is never true, since type can only be "pos" here.
As a result, minetest.get_inventory{type="node"..} always return nil even for valid nodes.

This patch basically reverts the code but adds the NO_MAP_LOCK_REQUIRED macro (profiling only?) to the "player" and "detached" parts - the only thing that I could see has changed in behaviour.