This implements git clean and exposes the ability to remove untracked files from the working directory.
If / when git clean functionality is exposed directly by libgit2, we can update this to use that entry point.
Currently, we call git_checkout_index with a flags indicating that untracked entries should be removed. This does
not support other flags exposed by core Git, such as removing ignored files.