Add tests for listing non existent directories

There are tests both for directories which do not
exist at all, and for directories which do not
exist on HEAD.
Use repo root for cwd to accomodate missing dirs

A bug listDirectory() caused the contents of the
repository root to be returned in the instance
that the specified directory did not exist.

This change leverages the git ls-tree option
"--full-name" to enable the repo root to be used
as the cwd of the process, and the required dir
specified in the ls-tree command itself.