setTimeout receives arguments after delay argument

According to `setTimeout` [syntax](https://developer.mozilla.org/en-US/docs/Web/API/Window.setTimeout) we can pass arguments to executable function after `delay` argument

```javascript
setTimeout(function(a, b){
  console.log('args', a, b);
}, 0, 'this is a', 'this is b');
```

In `delay` method we can apply `func`, `wait` and all args as one argument list. Also using this approach `func` saves context.