contrib/subtree: Switch to POSIX shell

On most systems /bin/sh is a POSIX compatible shell.

This will break the script, which following patches will
resolve.

Signed-off-by: Paul Campbell <pcampbell@kemitix.net>
contrib/subtree: POSIX - remove use of test -a/-o

Use a separate [ invocation for each single test,
combine them with && and ||, and use ordinary
parentheses for grouping.

Signed-off-by: Paul Campbell <pcampbell@kemitix.net>
contrib/subtree: POSIX - replace use of echo with options with printf

Options to echo are not portable. In particular, the echo -e
option is implemented by some shells, including bash, to
expand escape sequences. Using the printf command instead,
which is portable and much more reliable.

Only instances of echo and say (a wrapper for echo) being
used with options have been replaced with printf.

say_progress() is added to mirror the behaviour of say() in
respecting the -q/--quiet option.

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