The first one happens because `remove_node` is called
directly, calling `remove_node` for the vine below,
calling `remove_node` for the vine below, calling...
The second one happens because `get_item_group`
returns 0 for groups not set, and 0 is a truthy
value in Lua, so the code always removes the bottom
node regardless of its group rating. This interacted
funnily with doors wanting to remove their top node,
while vines wanted to remove their bottom nodes.