Remove obsolete qualify_ref function
Begin recording submodule references in super-modules
Adjust comment column so that poor-man's code folding will work
Encapsulate branch existence test
Add warning
Add comments
Update the .gitmodules file when submodules change
Rename Repository::Branch::created => Repository::Branch::lastChangeRev
Rename Repository::Branch::last_submodule_update_rev => Repository::Branch::lastSubmoduleListChangeRev

for consistency with Repository::Branch::lastChangeRev
DANGER: make sure lastChangeRev actually reflects the last revision in which the branch is changed.

NOTE: "lastChangeRev" used to be called "created" before we renamed
it.  It's unclear what this data member was actually supposed to mean,
but the --extra-verbose output of analysis isn't altered by this
change.  Now, I *think*, it means what we intend.
Rename a variable
Use mark to determine whether a branch is being deleted
Eliminate redundant copy of gitRefName
Replace separate store of deleted / reset branch commands with a store in each Branch

Maintain a set of modified branches that we'll be able to use for
branches containing file modifications as well.
Eliminate unneeded overloads of demandTransaction
Allocate commit marks to Transactions at the time they are constructed.

We need to be able to refer to these things when submodules are updated
Change protocol submoduleChanged: accept git ref name rather than branchRule*
Update submodules when transactions are created
Properly record modified branches due to Transaction creation
Make Repository traffic publicly in branch names rather than BranchRule*s

This effectively reverts commit 0f44f3a56f32e8e96cb6ac9f60adbea516611d9a.