contrib/subtree: Teach add to store repository & branch in .gittrees

The repository and branch of a subtree added with the add command is
stored in the .gittrees file.

Signed-off-by: Paul Campbell <pcampbell@kemitix.net>
contrib/subtree: Remove trailing slash from prefix parameter

Ensure prefix paths are a consistent in not having a trailing slash.

Signed-off-by: Paul Campbell <pcampbell@kemitix.net>
contrib/subtree: Teach push and pull to use .gittrees for defaults

Look in the config file .gittrees for a default repository and
refspec or commit when they are not provided on the command line.

Uses the .gittrees config file in a similar way to how git-submodule
uses the .gitmodules file.

Signed-off-by: Paul Campbell <pcampbell@kemitix.net>
contrib/subtree: Parameters repository/branch for push/pull are optional

Signed-off-by: Paul Campbell <pcampbell@kemitix.net>