Update viewlists to store a list of promises for views

Like all the other lists of views, this list is also more elegant if we store a list of promises.  We simplify the code a lot, and let code that doesn't have access to the update() call to also do things with the view promises.

ping @jdfreder for review.
right now, nothing is "common".  Usually, nobody ever looks at the views list - all actions are done when items are added or removed from the view list.  This makes it possible to use the views in the list if you want.

I would say that it's not worth it to have the extra magic you propose, at least until we have several use-cases using `Promise.all`.  I don't have enough data to come up with the right generalization and convenience shortcuts.