Fix another part of bug #18035 with redisplay of line-prefix and linum-mode.

 src/xdisp.c (display_line): If called with iterator set up to write
 to a marginal area, delay the call to handle_line_prefix until we
 switch back to the text area.
Fixes: debbugs:18140

* macros.c (Fstart_kbd_macro): Initialize kbd_macro_ptr and
kbd_macro_end together with kbd_macro_buffer.
Fix hscroll of R2L lines that begin with a TAB or another wide glyph.

 src/xdisp.c (append_stretch_glyph): In a R2L glyph row, decrease the
 pixel width of the first glyph that is hscrolled from display.
 (display_line): In R2L glyph rows, don't give a negative offset to
 row->x when the first glyph begins before first_visible_x.
Fix bug #18146 with bogus key rebindings in TUTORIAL.he.

 lisp/tutorial.el (tutorial--display-changes): Accept punctuation
 characters before the key binding.  (Bug#18146)
[Gnus] Allow list-valued gcc-self group params

* lisp/gnus/gnus-msg.el (gnus-inews-insert-gcc):
  Allow `gcc-self' to be a list of groups and t.
* doc/misc/gnus.texi (Group Parameters):
  Document that `gcc-self' may also be a list.
* frame.c (x_set_frame_parameters): Don't use uninitialized locals.

Without this change, the code can access the local variable 'width'
even when it has not been initialized, and likewise for 'height';
in either case this leads to undefined behavior.
Simplify timerfd configuration and fix some minor glitches.

* configure.ac (HAVE_TIMERFD): Define only if TFD_CLOEXEC works,
since the code leaked file descriptors to children when !TFD_CLOEXEC.
(HAVE_TIMERFD_CLOEXEC): Remove; no longer used.
* m4/clock_time.m4 (gl_CLOCK_TIME): Don't check for clock_getres.
This reverts the previous change to this file, so it matches
gnulib again.
* src/atimer.c (TIMERFD_CREATE_FLAGS): Remove; we now assume TFD_CLOEXEC.
(alarm_timer, alarm_timer_ok, set_alarm, init_atimer):
Fall back on timer_create if timerfd_create fails at runtime.
(resolution) [HAVE_CLOCK_GETRES]: Remove; we now rely on the
kernel primitives to do resolution.  All uses removed.
(timerfd) [!HAVE_TIMERFD]: Define to be -1, for convenience.
(turn_on_atimers): Clear timer_create-based timers too,
for consistency.
* frame.c (x_set_frame_parameters): Fix typo in previous patch.

I had confused && with ||.
Minor style fix to previous patch.
doc/misc/ChangeLog: Add missing entry for gnus.texi
* lisp/progmodes/python.el: Shell output capture enhancements.
(python-shell-accept-process-output): New function.
(inferior-python-mode)
(python-shell-send-setup-code): Use it.
* atimer.c (toplevel) [HAVE_TIMERFD]: Include errno.h.
(timerfd_callback): Ignore weird events with no data.  Add tight
assertions and comments.
(init_atimer) [HAVE_TIMERFD]: Add environment variable to optionally
disabletimerfd-based timer.  Use TFD_NONBLOCK for timer descriptor.
Fix display of R2L lines when the last character fits only partially.

 See http://lists.gnu.org/archive/html/emacs-devel/2014-07/msg00476.html
 for the details.
 src/xdisp.c (extend_face_to_end_of_line): If the last glyph of an
 R2L row is visible only partially, give the row a negative x
 offset.
 (display_line): Fix the calculation of the glyph whose pixel width
 is used to decide whether the last produced glyph fits on the
 line.  When the last glyph fits only partially, give the row a
 negative x offset.
Auto-commit of loaddefs files.
Auto-commit of loaddefs files.
Merge from emacs-24; up to r117418.
ChangeLog date fix
Make functions static that no longer need to be extern.

* frame.c, frame.h (set_menu_bar_lines):
* keyboard.c (Qleftmost, Qrightmost):
* xfns.c, frame.h, menu.h (x_set_menu_bar_lines, x_set_tool_bar_lines)
(x_set_internal_border_width):
Now static.
Spelling+grammar fix.
* automated/icalendar-tests.el (icalendar--decode-isodatetime): Hydra fix.
Use more precise TZ specification, as per 2013-08-04.