Update the first-run page.

Remove the link to choose the home folder and update
the subscription guide.
Use arrow functions for closures.
Use Promises and Tasks instead of our custom coroutines stuff.

Promises and Tasks are becoming the standard in the Mozilla codebase
and soon on the Web in general. They are part of the newest APIs
such as Sqlite.jsm. They offer much better semantics and error handling
than our custom coroutines which, while useful, were pretty hacky.

Most places need only simple, mechanical changes, though FeedFetcher and
storage wrappers need some refactoring.
Replace async() with a Promise-based wait() function.

Utilize the new function in BookmarkObserver.delayedLivemarksSync().
Convert the remaining stuff from callbacks to Promises.
Rename Function.prototype.gen() to task().

The new name better reflects what it's about.