ArrayObject::append() should delegate to ArrayObject::offsetSet()

Match php5 implementation by delegating rather than direct manipulation of internal state.
Fixes issue #3403.