absorb: run cleanupnodes() within transaction also when not using obsmarkers

Authored by martinvonz.

Description

absorb: run cleanupnodes() within transaction also when not using obsmarkers

scmutil.cleanupnodes() schedules stripping to be done after the
current transaction, so we can safely run it within the
transaction. This also means that the phase will be updated within the
transaction, which I believe means that the initial (possibly
incorrect) phase will not visible.

Differential Revision: https://phab.mercurial-scm.org/D6037

Details