commitctx: extract all the manual logic to process the files
That branch of the if is significantly more complicated than the other two.
Moving it to its own function make it simple to keep the scope limited and to
read to the higher level function.
commitctx: treat `filesadded` more like `filesremoved`
Accumulating the filename in a list will have a negligible cost and deal with
the list of added files like the other ones will make is code cleaning simpler.
The two variable with very close name is not great, but my plan is to split most
of the code in a separated function which will make the "problem" go away by
itself.