Add option to abort matching builds

If a build is running and we add another to the queue with the same
repo and branch, we now will kill the running build and effectively
restart it. This is actually acomplished by inserting the new build at
the front of the queue, then aborting the current build.

This necessitated making a change to notify-queue (dealing with timing
of pop and push in regard to nextTick). This also exposed a bug in
cli.js where we didn't start listening for events until *after* adding
a build.

By @chpatton013