templater: show the style list when I try to use a wrong one

When someone try to use a wrong style, a list with sugestions will appear.

In the test-log.t file it's a test that prove this thing.

--HG--
extra : rebase_source : d89e2a6c486fe2326f714438b99a8a8e4bd12328
log-style: add a log style that is default+phase (issue3436)


There is a new style called phases style.
Usage::
    hg log --style phases

Why do we need this new style - in what way is it different from or similar to
existing styles?
The new style is default + phases information. With the new phases feature the
users exhibited their desire for a new style that could help them.

Why do this need a new style - couldn't it be folded into an existing style?
The default style and the new one are about the same, the difference is the
phases tag. The users find both styles useful, this means that the both styles
must exist.

--HG--
rename : mercurial/templates/map-cmdline.default => mercurial/templates/map-cmdline.phases
extra : rebase_source : 5839ecc0bcab5ab027aa3d627cfa8bd86b0d56c7
templater: fix output instability from gsoc patches

--HG--
extra : rebase_source : 7dee96c5d96ac5723ad34e422a3b02a745ef321f
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
merge with stable