Adding convenience :bool return key for 'git function.
Consolidate repetition in 'box-repo-add for clarity.
Stop using --git-dir and --work-tree for 'git fn.

It turns out that git-stash and other shell based git commands don't
honor either the commandline flags (--git-dir/--work-tree) or the
environment variables (GIT_DIR/GIT_WORK_TREE). We now use the :dir
option to c.j.s/sh to change directory.
Remove usage of /.git directory for specifying git locations.

Since we don't allow separate GIT_DIR and GIT_WORK_TREE and we may
want to specify a relative path in the repo, we now rely on the new
:dir change directory functionallity of the 'git function.
Add 'ancestor? and 'dirty-repo? functions.
Add 'dirty-repo? check for 'box-repo-add.

This change now properly handles checking a repo for changes from the
origin repo and will further check for unpushed local changes before
clobbering the repo for such a change.