Remove bounds check from array_get

No caller of array_get is actually checking the return value for NULL.
So just change the contract of array_get. Calling it with an invalid
index value is not allowed anymore.
array: Ensure allocated memory is initialized to zero
array: Fix resizing of non-relocatable arrays

The array_resize function did reserve additional memory, but forgot to
allocate the actual item meory for non-relocatable items.
Add more documentation for the Array object