add Q npm and add defer functionality to async queue

Have async queue return a promise that will allow for resolving or rejecting the stack effectively halting remain calls in the async stack if any are remaining
Merge pull request #5 from boom/feature/add-promise-to-async-queue

add Q npm and add defer functionality to async queue