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.
What is more common, actions on the individual views or actions on the full list of views?  Maybe it's worth it, for user convenience, at the expense of a few lines, to rename `this.views` to `this._views` and define 

```js
var that = this;
Object.defineProperty(that, 'views', {
    get: function() { 
        return Promise.all(that._views); 
    }
});
```
What do you think?  Overkill?