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.
Having a list of promises for `views` is motivated by a use case that we have where we actually make use of the individual promises. Although I am not quite sure yet that there is not a more elegant way to solve our issue.