Catchable "Call to a member function bar() on a non-object"

This pull request turns fatal errors generated from calls to methods on a non-object into E_RECOVERABLE_ERRORs.

## Example

```php
set_error_handler(function($code, $message) {
  var_dump($code, $message);
});

$x= null;
var_dump($x->method());
echo "Alive\n";
```

The above produces the following output:

```
int(4096)
string(50) "Call to a member function method() on a non-object"
NULL
Alive
```

## Reasoning

If you want to run PHP as a webserver itself, fatal errors are problematic. For a long story on why you would want to do that in the first place, see http://marcjschmidt.de/blog/2014/02/08/php-high-performance.html

## Consistency

This behavior is consistent with how type hints work. Framework authors can turn this into exceptions if they wish.

## Further reading
* [RFC: Engine exceptions](https://wiki.php.net/rfc/engine_exceptions) - this PR doesn't go as far as this controversial RFC
* PHP Bugs [46601](https://bugs.php.net/bug.php?id=46601), [51882](https://bugs.php.net/bug.php?id=51882) and [51848](https://bugs.php.net/bug.php?id=51848) - bugs which would be fixed by this
* PHP Bug [54195](https://bugs.php.net/bug.php?id=54195) - related, motivates necessity
* HHVM [throws a `BadMethodCallException`](https://github.com/facebook/hhvm/blob/master/hphp/test/quick/method-non-object.php.expectf) in [these situations](https://github.com/facebook/hhvm/blob/master/hphp/test/quick/method-non-object.php) - can be done by implementing an error handler as seen [here](https://github.com/thekid/php-src/blob/51a5e184335373e0bcfd6c65fdb22c6908768a83/Zend/tests/methods-on-non-objects-throw.phpt)
Yes, theoretically this should be problematic, the opcodes go along the lines of:

```
L0-0 {main}() /home/friebe/devel/php-src/nested.php
L2      0x7f852c033da0 ZEND_ASSIGN                    $nul                 C0                   @0
L3      0x7f852c033dd0 ZEND_INIT_METHOD_CALL          $nul                 C2                   <unused>
L3      0x7f852c033e00 ZEND_INIT_FCALL_BY_NAME        <unused>             C4                   <unused>
L3      0x7f852c033e30 ZEND_DO_FCALL_BY_NAME          <unused>             <unused>             @1
L3      0x7f852c033e60 ZEND_SEND_VAR_NO_REF           @1                   <unused>             <unused>
L3      0x7f852c033e90 ZEND_DO_FCALL_BY_NAME          <unused>             <unused>             @2
```

...so looks like we need to modify the skipping part a bit.