Order setImmediate calls before setTimeout calls

Fixes #595
This pretty much duplicates the entire addTimer function. I'd much rather refactor it so it can be used for both cases. Something like this:

```js
addTimer(args, options)
```

Where `options` can be:

```js
{ recurring: true,
  immediate: true }
```