process: rethink how the ticker works

Everything in processNextTick is going to be called a lot. It should be
written in a way that allows it to be inlined. First change here is
working out how to remove the .splice() calls.

I'm looking for feedback on how to get this sucker working. Basically instead of keeping track of queues within a single large array, I have an array of array queues and keep a pointer to the current one.

Also you'll notice that I've removed the `domain` stuff. Those calls are causing massive `DEOPT` bailouts. Off of the gimp version here, along with @isaacs GH-4686, there's about a 20% increase in performance.