Revert "Make bashism conditional on the shell being bash"

This reverts commit aaccfba9a0cfcfdd4db1e629b50d65b1c479b64f.
Revert "Don't ignore hg-fast-export.py exit code"

This reverts commit 9643aa5df2e14e01867bc4266958b8c8081c3377.
hg-fast-export.sh: Do not ignore hg-fast-export.py exit code

Originally 9643aa5d did this by using a bashism even though the
/bin/sh interpreter is being used.

Then ea55929e attempted to compensate for this by disabling the
bashism when the interpreter was not actually bash which results
in the hg-fast-export.py exit code still being ignored in that case.

Instead check the error code without requiring a bashism.
hg-fast-export.py: restore compatibility with older python

Since hg runs and supports older versions of python, hg-fast-export.py
should too.  Replace dictionary comprehension with equivalent code that
supports versions of python older than 2.7.
hg-fast-export.py: support older hg versions

Do not use the closesbranch function as it was added in later
versions of hg.  Use its definition instead.
hg-fast-export.py: do not lose file mode changes

If the file mode changes (for example from 10644 to 10755), but the
actual text of the file itself does not, then the change could be
missed since the hashes would remain the same.

If the hashes match, also compare the gitmode values before deciding
the file is unchanged.
hg-fast-export: support new --hgtags option

Add support for a new --hgtags option.  When given, any .hgtags
files that may be present are exported.

Normally this is not desirable.  However, when attempting to mimic
the actions of other hg exporters that always export any .hgtags
files this option can help produce matching export data.
hg-fast-export.sh: clean up help text and support --help

Intercept -h/--help before git-sh-setup so the proper script name
can be shown instead of "hg fast-export.sh" which is wrong.

Reorder the long option descriptions to be in the same order as
the short usage since, as the help says, "argument order matters."
hg-fast-export.py: improve authors file compatibility

The authors file format accepted by git-svnimport and git-cvsimport
actually allows blank lines and comment lines that start with '#'.

Ignore blank lines and lines starting with '#' as the first
non-whitespace character to be compatible with the authors file
format accepted by the referenced tools.