Improvements to ArrayData

Added ITM_ARR_ARRAY_SIZE_PROTECT which, when true, will block gets/sets
to array cells that are outside of the length bounds of the item's array
data.

If false, the item's array length bounds are updated to match any single
cell assignment and ignored on get calls.