isset() and empty() don't invoke ArrayObject::offsetGet()

Replaces PR #616.

**Work in progress**

This fixed [bug 66834](http://bugs.php.net/66834).

Both `isset()` and `empty()` should inspect the value after checking whether the offset exists (or by calling `offsetExists()`).