timer: the this keyword is do always refer to global

The this keyword in timer callbacks was very inconsistent, nomally
this would refer to a internal timer object and if setImmediate was
called with arguments this would refer to the global object. This
commit normalizes what the this keyword refer to by always calling
the callback with null. E.q. callback.apply(null, args)