Memory errors resulting from too-large copy in ArrayList

ArrayList_Shift was copying too large a chunk of data when shifting downward (negative count), which would eventually cause memory errors:  segfaults or mysterious failure in realloc.