Fixes for pty handling in gdb-mi.el and process.c.

* lisp/progmodes/gdb-mi.el (gdb): Revert 2012-04-19 change.
(gdb-inferior-io--init-proc): New function.
(gdb-init-1): Use it.
(gdb-inferior-io-sentinel): New sentinel for the gdb-inferior pty,
responsible for allocating a new pty and hooking it to gdb when
the old pty gets an EIO due to process exit.
(gdb-delchar-or-quit): New command.  Bind it in gdb-mi buffers.
(gdb-tooltip-print): Don't use obsolete tooltip-use-echo-area.
(gdb-inferior-io--maybe-delete-pty): Move into gdb-reset.

* src/process.c (wait_reading_process_output): If EIO occurs on a pty,
set the status to "failed" and ensure that sentinel is run.

* doc/lispref/processes.texi (Asynchronous Processes): Mention nil
argument to start-process.
Fix last change.

* lisp/progmodes/gdb-mi.el (gdb-inferior-io-sentinel): Don't do
anything if gdb process is killed.
Fix sysfs battery display.

* battery.el (battery-echo-area-format): Display remaining time
for sysfs backend too (Bug#11269).
(battery-linux-sysfs): Fix conditional for the charge.
* MORE.STUFF: General update.
Mention list-packages.
Remove many old/outdated URLs.
* etc/CONTRIBUTE: Expand a bit on copyright assignments.
Merge from emacs-24 branch
Fix resizing of minibuffer windows (Bug#11276).

* window.el (adjust-window-trailing-edge, enlarge-window)
(shrink-window, window-resize):
* mouse.el (mouse-drag-line): Fix resizing of minibuffer
windows (Bug#11276).
* lisp/startup.el: Fix typo.
Improve fix for resizing minibuffer windows.
* lisp/server.el (server-execute): Respect initial-buffer-choice
if it is a string and there are no files to open.
(server-create-window-system-frame, server-create-tty-frame):
Don't switch buffers here.

Fixes: debbugs:2825
Fix bug #11279 with sending command blocks to GDB.

 lisp/progmodes/gdb-mi.el (gdb-control-level): New variable.
 (gdb): Make it buffer-local and init to zero.
 (gdb-control-commands-regexp): New variable.
 (gdb-send): Don't wrap in "-interpreter-exec console" if
 gdb-control-level is positive.  Increment gdb-control-level
 whenever the command matches gdb-control-commands-regexp, and
 decrement it each time the command is "end".  (Bug#11279)
Fix emacsclient/server behavior under --without-x.

* lib-src/emacsclient.c (main): Send -tty to Emacs under more circumstanced (Bug#8314).

* lisp/server.el (server-process-filter): Only try to open a window
system frame if compiled with graphical support (Bug#8314).

Fixes: debbugs:11102
* lisp/font-lock.el (lisp-font-lock-keywords-2): Add pcase, pcase-let
and pcase-let*.
* src/print.c (print_preprocess): Only check print_depth if print-circle
is nil.
(print_object): Check for cycles even when print-circle is nil and
print-gensym is t, but only check print_depth if print-circle is nil.
Fix bug #11288 with overrunning array limits.

 src/dispnew.c (swap_glyph_pointers, copy_row_except_pointers): Don't
 overrun array limits of glyph row's used[] array.
Fix up merged ChangeLog entries
fileio.c fix for bug#11245

* src/fileio.c (Fcopy_file, Fset_file_selinux_context):
Ignore ENOTSUP failures from setfilecon functions.
Fix logic for returning to and yanking from Rmail buffer.

* mail/rmail.el (rmail-start-mail):
Pass (rmail-mail-return...) for the return-action.
Pass (rmail-yank-current-message...) for the yank-action.
(rmail-yank-current-message): New function.
(rmail-mail): Pass the Rmail buffer, not view buffer, for replybuffer.
(rmail-reply): Likewise.
(rmail-forward): Pass the Rmail buffer, not nil, for replybuffer.

* mail/sendmail.el (mail-bury): Choose the first rmail-mode
buffer, not the last.  Reject temp buffers.  Use the rmail-mode
buffer, not newbuf.
* lisp/minibuffer.el (completion-file-name-table): Complete user names.
* keyboard.c (process_pending_signals): Define only if SYNC_INPUT.

It is never used otherwise.