Extension:Nonlinear

Current Status

 * Backend to manage revision branch.
 * Minimal UI to label branches in revision history.
 * Cannot create a new branch. To test, create a new branch in the database and assign an article's head revision to it.

Outline

 * Subsume the functionality of Extension:FlaggedRevs and core page protection. Try to present the same workflow and API as much as possible.
 * Integrate with a second extension, which is a UI on top of abstract version control. (show item at revision or as delta, show/hide metadata and its history, alter non-destructively)
 * Hooks: add revision; alter (builtin f: save revision and record of change)
 * User roles: public (add revision, annotate/link, view), owner (*),
 * Branches do not have owners, when there are name collisions, other, determinate methods result in what is displayed. Revisions do have an owner.  Mention that anonymous edits lose formal ownership.
 * Extension adds metadata about revisions, which is namespaced under "Nonlinear".
 * Target multiple db backends, since this is meant for hybrid offline / central server sharing.