Update local downstream branches on renaming branch

When a branch tracks another local branch, downstream branches should
continue tracking the upstream branch even if it is renamed.  However,
renaming a branch does not automatically update the branch.<name>.merge
configuration option for its downstream branches to point to the new name
of the branch.  This causes the downstream branch to continue to point
to a branch with the old name which may now no longer exist or may be a
completely different branch.

Added branches_get_all() to return the configurations of all branches.
Made rename_branch() loop through them and for each branch, update the
value of branch.<name>.merge to the new name of the branch being renamed
if it was earlier equal to the old name of the branch being renamed and
branch.<name>.remote is equal to ".".  Added a test case in t3200 to
catch this bug.

Signed-off-by: Mrunal Sabnis<msabnis1@bloomberg.net>
Signed-off-by: Nitisha Warkari<nwarkari1@bloomberg.net>
Reported-by: Alex Vallee<avallee@google.com>