Check for dirty working copy can optionally ignore untracked files

The default is that untracked files are considered dirty. To ignore pass ignore_untracked_files=True in the call to git_seed().

Moved the logic to check for dirty working copy to a little helper function: _is_dirty()