context: let caller pass in branch to committablectx.__init__()

Authored by martinvonz.

Description

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