branch: rename 'tracking' to 'upstream'

The term 'tracking' is overloaded. Help distinguish what we mean by
using 'upstream' for this part of the library.
branch: refactor git_branch_remote_name

Return the size we'd need to write to instead of simply an
error. Split the function into two to be used later by the upstream
configuration functions.
branch: add more upstream configuration management

Add functions to set and unset the upstream configuration to
complement the getter we already have.
Merge pull request #1450 from carlosmn/branch-upstream

Branch upstream configuration