book2: generate book within a transaction
book2: generate book within a transaction

This should give an atomic view of the contents as we
generate the new version. Probably this isn't particularly
meaningful for minor updates, but it gives us the freedom to
implement the update differently in the next commit.

git/git-scm.com,git/git-scm.com,Mokolea/git-scm.com,Mokolea/git-scm.com,Mokolea/git-scm.com,mosoft521/gitscm-next,mosoft521/gitscm-next,Mokolea/git-scm.com,git/git-scm.com,mosoft521/gitscm-next,git/git-scm.com,mosoft521/gitscm-next