context: let caller pass in branch to committablectx.init()
committablectx.init() currently looks up the branch from the
dirstate unless it's passed in the extras. memctx.init() has a
branch argument, but since committablectx.init() doesn't accept
it, it lets that constructor look up the branch from the dirstate
before it overwrites it, which seems awkward.
Differential Revision: https://phab.mercurial-scm.org/D6366