Minor update, bug fixes and small new features

Button:
Made button areas cylinders.

Container:
Much improved the "WillItemFitInsideContainer" function.

Door:
Improved the "dr_PlaySoundForAll" to avoid a sound issue if the player
runs out of the steam distance and back again, the "stop track" sound
would not play and the looped sound will continue playing.

Inventory:
Fixed a bug where the player could tap Y repeatedly to put an item in
their inventory multiple times. However this doesn't allow duplication
as the item still holds the same ID, when the item was removed or
destroyed, all the "copies" or "instances" of that item would also
disappear.

Item:
Added Iter_SafeRemove in case DestroyItem is used inside a loop, this
adds two new parameters which return the itm_Index iterator value and
itm_WorldIndex iterator value, which need to be used when the loop is a
itm_Index loop or itm_WorldIndex loop respectively.

Modules/Craft:
Fixed some small bugs with combining items of the same type.