hgignore: fix regression with hgignore directory matches (issue3921)

If a directory matched a regex in hgignore but the files inside the directory
did not match the regex, they would appear as deleted in hg status. This
change fixes them to appear normally in hg status.

Removing the ignore(nf) conditional here is ok because it just means we might
stat more files than we had before. My testing on a large repo shows this
causes no performance regression since the only additional files being stat'd
are the ones that are missing (i.e. status=!), which are generally rare.

--HG--
branch : stable
revert: ensure that copies and renames are honored (issue3920)

Previously, we restored the states of files, but not the additional
information the dirstate uses to track copies and renames.

--HG--
branch : stable