Use ESLint with custom rules instead of JSLint

ESLint is capable of checking more rules, and enforcing more stylistic
consistency. An ESLint configuration file is now included, which turns
on most optional rules, and the rest of the project has been modified to
conform to these rules. The major change is that array literals now
require padding. The consistent-this and and spaced-line-comment rules
require a minor patch to accept the existing style.
Reimplement while loops to reduce memory leaks

The existing implementation of the while() do() method formed a long
chain of every task created in the loop, retaining every task until the
loop finished. This was unnecessary, as each iteration does not need to
wait for the next to conclude the task. Now the loop creates a manual
task, which is resolved (or rejected) by the completing iteration. Each
individual iteration spawns the next, but it does not wait for it to
complete, and its tasks are not retained and they may be collected. The
outer task binds into the standard waiting mechanism for the current
iteration, and if stopped will stop its body as well.