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.
Notify '*' pathspec correctly when diffing

I also moved all tests related to notifying in their own file.
Merge pull request #1367 from yorah/fix/pathspecs_behaviour

Correctly return matched pathspec when passing "*" or "."
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