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
buildAborted: have git-build abort builds

Ensure git-build actually aborts builds when instructed to by cimpler.
buildAborted: abort all on shutdown

Also, prevent multiple calls to done in a test.
Merge add-abort-option (#59) into master

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

Replaces #58