This returns Ok(true) if the worktree has any modified files (staged or
unstaged), or any added (staged) files. Ok(false) if not.
Ignores untracked files.
This avoids leaving prunable worktrees around if we dirtied the worktree
and didn't commit.
This can happen in the following situation:
1. User runs `ent new`.
2. ent creates a new directory for the issue.
3. ent opens an editor to let the user type in the description of the
new issue. The editor saves to `ISSUE/description`.
4. User changes their mind and no longer wants to make a new issue, so
they save an empty buffer and exit the editor.
5. ent sees that the file is empty, and returns an error from
Issue::edit_description().
6. ent propagates the error up through program exit, and eventually
the git::Worktree struct is dropped. Since the worktree is dirty
(it has the new issue dir with an empty description file in it),
`git worktree remove` fails.
But `git worktree remove --force` works!