fix method patching and invoking of original functions

You cannot fallback to `this instanceof Zone` when no context object is specified.

```javascript
setTimeout.apply(zone, [ ... ]); // TypeError: Illegal invocation
```