add extension API model service, separate models and editors
Created by: sqs
Previously, document contents and metadata were stored in the editor service. This was simple, but it made it hard to manage documents separately from editors, which is helpful when editors and documents are no longer 1-to-1 (as in the case of diff views, a future desired feature).
This is the 1st PR in the sequence #3322 #3323 (review in order).