Altered prevention to avoid repeat auto tasks

This occurs when two or more tasks both depend on a single other task and have
their listeners registered. When the required task finishes, it iterates
through the listeners and calls them. If the first of the listeners executes its
task and that task finishes immediately, it too begins to iterate through
potential tasks to call and calls the other dependent task. Assuming this other
task does not finish immediately, the call rewinds to the original task, which
continues its iteration through the listeners. The listener that was removed is
still present in this scope, and so the task is called a second time.
Merge remote branch 'dpatti/auto-fix'

Conflicts:
	dist/async.min.js
force nextTick on auto calls to prevent double task execution when synchronous
Merge branch 'master' of github.com:caolan/async