.gitignore cleanup.

* .gitignore: Merge contents of subsidiary files and organize the
result so as to avoid duplication.  Remove no-longer needed entries.
* admin/charsets/.gitignore, admin/unidata/.gitignore:
* doc/lispintro/.gitignore, etc/.gitignore, leim/.gitignore:
* leim/ja-dic/.gitignore, lib-src/.gitignore, lisp/.gitignore:
* lisp/calc/.gitignore, lisp/calendar/.gitignore:
* lisp/cedet/.gitignore, lisp/emulation/.gitignore:
* lisp/erc/.gitignore, lisp/eshell/.gitignore, lisp/gnus/.gitignore:
* lisp/international/.gitignore, lisp/language/.gitignore:
* lisp/leim/.gitignore, lisp/leim/quail/.gitignore:
* lisp/mail/.gitignore, lisp/mh-e/.gitignore, lisp/net/.gitignore:
* lisp/nxml/.gitignore, lisp/obsolete/.gitignore:
* lisp/play/.gitignore, lisp/progmodes/.gitignore:
* lisp/term/.gitignore, lisp/textmodes/.gitignore:
* lisp/url/.gitignore, nt/.gitignore, src/.gitignore:
Remove; no longer needed.
* .gitignore: Add some nextstep/mac ignorables.
* .gitignore: Add /emacs-[1-9]*/, and sort better.
Fix VC documentation related to switching branches.

 lisp/vc/vc.el (vc-retrieve-tag): Doc fix.

 doc/emacs/maintaining.texi (Switching Branches): Mention "C-x v r".
 Correct commands for switching branches in various VCSs.
.gitignore: Resurrect Windows-specific ignorables lost in last changes.
Lessen focus on ChangeLog files, as opposed to change log entries.

This is in preparation for generating the former automatically
from the latter.
* admin/notes/bugtracker, admin/notes/copyright, admin/notes/newfile:
ChangeLog -> change log
* admin/notes/changelogs: Remove, merging old contents to ...
* admin/notes/repo: ... here.
* doc/emacs/maintaining.texi (Change Log): Mention that ChangeLog files may
be copied to or from a version control system.
* doc/emacs/trouble.texi (Sending Patches): Point to the commit messages.
* doc/lispref/intro.texi (Acknowledgments): ChangeLog file -> change log entries.
* doc/lispref/tips.texi (Library Headers): Emacs uses a version control system.
* etc/CONTRIBUTE: Give advice about git commit messages and how
to generate proposed patches containing them.
Improve XEmacs compatibility.

* net/tramp.el (tramp-autoload-file-name-handler):
Wrap `temporary-file-directory' by `symbol-value', it doesn't exist in XEmacs.
(tramp-read-passwd): Don't use `with-timeout-suspend' and
`with-timeout-unsuspend' if they don't exist, like in XEmacs.
(tramp-time-less-p, tramp-time-subtract): Remove functions.
(tramp-handle-file-newer-than-file-p, tramp-time-diff):
* net/ttramp-adb.el (tramp-adb-ls-output-time-less-p):
* net/ttramp-cache.el (tramp-get-file-property):
* net/ttramp-smb.el (tramp-smb-handle-insert-directory):
Use `time-less-p' and `time-subtract, respectively.
Fix typo in ChangeLog.
Add a.out to .gitignore.

Suggested by Lee Duhem in:
http://lists.gnu.org/archive/html/emacs-devel/2014-11/msg01665.html
* .gitignore: Add a.out.
Move *.log next to *.tmp, since it's generic.
Put *.exe before non-generics.
Add src/_gdbinit to .gitignore.

 .gitignore: Add back src/_gdbinit, which is a temporary file
 created by the MS-DOS build.
Use correct encoding to communicate with Git.

 lisp/vc/vc-git.el (vc-git-command, vc-git--call): Bind
 coding-system-for-read and coding-system-for-write to
 vc-git-commits-coding-system.
Use "~1" instead of "^" in vc-git.el to specify the parent of a Git commit.

 lisp/vc/vc-git.el (vc-git-previous-revision): Use "~1" instead of
 "^", since the latter is a special character for MS-Windows system
 shells.
Add more of the old .bzrignore to .gitignore.

Plus a few more .gitignore improvements.
* .gitignore: Add copyright notice, since it's big enough.
Put exceptions immediately after the patterns they're exceptions
to, to make them easier to follow.
Give four exceptions for the Makefile pattern.
Ignore /confdefs.h, test/indent/*.new, TAGS, GPATH, GSYMS, GRTAGS,
GTAGS, ID, *.exe, some nextstep-related files,
jisx2131-filter, *.orig, *.rej, etc/emacs.tmpdesktop, *.in-h
_* (except for build-aux/snippet/_Noreturn.h), /bin/, /BIN/,
/data/, etc/icons/, lib/cxxdefs.h, lib/SYS/, /libexec/, /lock/,
/README.W32, /share/, /site-lisp/, src/gdb.ini, /var/.
Ignore /configure.lineno, since POSIX requires
LINENO only with the User Portability Utilities option.
Ignore *cust-load.el and *loaddefs.el only under lisp.
Ignore core files of various flavors.
Do not ignore etc/refcards/gnus-logo.pdf.
* net/tramp-sh.el (tramp-get-remote-locale): Return "LC_ALL=C" as
fallback.
(tramp-open-connection-setup-interactive-shell): No need to check
for nil as `tramp-get-remote-locale' return value.
Fixes: debbugs:19047

* net/tramp.el (tramp-action-password): Clean password on subsequent
attempts even if there was no wrong password indication.
Set PYTHONUNBUFFERED on shell startup.

Fixes: debbugs:18595

* lisp/progmodes/python.el (python-shell-unbuffered): New var.
(python-shell-calculate-process-environment): Use it.

* test/automated/python-tests.el
(python-shell-calculate-process-environment-4)
(python-shell-calculate-process-environment-5): New tests.
(python-shell-make-comint-3): Use file-equal-p.
(python-shell-get-or-create-process-1)
(python-shell-get-or-create-process-2)
(python-shell-get-or-create-process-3): Fix interpreter for
Windows.
Add git commit hooks that do some simple checks on commits.

* autogen.sh: Install Git hooks, if using Git.
* build-aux/git-hooks/commit-msg, build-aux/git-hooks/pre-commit:
New files, which are Git hooks that check for portable file names, and
do some simple checks for commit message format.
Fix calendar-mark-1

* calendar/diary-lib.el (calendar-mark-1): Fix thinko.
* textmodes/makeinfo.el (makeinfo-buffer): Make it work also for
remote `buffer-file-name'.
Fixes: debbugs:18579

* lisp/vc/vc-bzr.el (vc-bzr-after-dir-status): Don't skip ignored
files.