Implement first-class docs and linked docs

 - Move a lot of methods from the CodeMirror to the Doc prototype
 - Allow getting, attaching, and copying of Doc objects
 - Add linkedDoc to create documents that stay in sync
 - Allow such linked docs to be sub-view on their parent
 - Rewrite history handling
 - Remove the concept of a view

Documentation still failing.
Update and reorganize docs

Add docs for first-class document features, split API section
into subsections to make it easier to read.
Implement shared markers
Fix flaky behavior when undoing after adding a mark

The mark would disappear into thin air if it was on a line
affected by the undo (or redo). Now it is properly preserved.
Fix typo in makeChangeSingleDocInEditor

`makeChangeSingleDocInEditor` was throwing exceptions because
of the typo.
[util/closetag] Adjust to change in replaceSelection interface
Add getOptions to shared text markers
Make the scroll update in addLineWidget synchronous