New function in ItemArrayData

Added SetItemArrayDataSize that sets the array data length for an item.
This was needed for the SetItemExtraData wrapper as the data was being
set but the length was still at 0. That macro now calls
SetItemArrayDataSize to set the size to 1 so the array data return
function works properly.
Fix to ItemList

Fixed an accidental typo, should be SetItemArrayData not
SetItemExtraData.

Fixed some usage of memcpy that wasn't working properly. Item raw list
data is now copied correctly.

Also removed some old debug print code.