Make the model.views dict a dict of promises for views

Otherwise, there is a race condition where the model doesn't know about views until they are actually created.
Merge pull request #7093 from jasongrout/model-views

Make the model.views dict a dict of promises for views