Merge from trunk.
* todos.el (todos-filtered-items-mode-map): Update some bindings.
(todos-show): Make it work the same in todos-archive-mode and
todos-filtered-items-mode as in todos-mode.
(todos-quit): When called in todos-archive-mode, switch to
corresponding category in todo file.  When called in todos-mode,
avoid going right back to archive.
Fix bug #14408 with updating *Messages* display.

 src/xdisp.c (message_dolog): If the *Messages* buffer is shown in
 some window, increment windows_or_buffers_changed, so that
 *Messages* display in that window is updated.
Document arguments of insert_1_both.
gnus-notifications.el (gnus-notifications-notify): Use photo-file as app-icon
* emacs-lisp/smie.el (smie-matching-block-highlight): New face.
(smie--highlight-matching-block-overlay)
(smie--highlight-matching-block-lastpos)
(smie--highlight-matching-block-timer): New variables.
(smie-highlight-matching-block): New function.
(smie-highlight-matching-block-mode): New minor mode. 
(smie-setup): Conditionally enable smie-blink-matching-open.
lisp/gnus/message.el (message-expand-group): Decode group names
* lisp/progmodes/f90.el (f90-keywords-re, f90-keywords-level-3-re)
(f90-hpf-keywords-re, f90-constants-re): Use \\_< rather than
regexp-opt's `words'.
* subr.el (delete-consecutive-dups): New function.
* ido.el (ido-set-matches-1): Use it.
* progmodes/octave.el (inferior-octave-completion-table): Use it.
* ido.el (ido-remove-consecutive-dups): Remove.
* calc/calc-units.el (math-extract-units): Preserve powers of units.
Doc string fix for "nanoseconds".

* emacs-lisp/timer.el (timer-relative-time, timer-inc-time):
Fix doc string typo that had "nanoseconds" instead of "microseconds".
* emacs-lisp/smie.el (smie-highlight-matching-block-mode): Clean
up when turned off. 
(smie--highlight-matching-block-overlay): No longer buffer-local.
(smie-highlight-matching-block): Adjust.
Support invocation of un-installed runemacs.exe.
Support invocation of un-installed runemacs.exe.

 nt/runemacs.c (WinMain): Support invocation of un-installed
 nt/runemacs.exe, by looking for src/emacs.exe.
* todos.el (todos-category-completions): Restore point after
ensuring category is properly displayed.
* todos.el (todos-done-separator): Use window-width for length, in
anticipation of bug#2749 being fixed.
* newcomment.el (comment-search-backward): Stricter in finding
comment start. 

* progmodes/octave.el (octave-comment-start): Remove the SPC char.
(octave-comment-start-skip): Properly anchored.
Fix typos in previous subword.el change
* lisp/cus-dep.el (custom-make-dependencies): Sort the output.
(custom-versions-load-alist): Convert comment to doc.
* vhdl-mode.el (vhdl-mode-map-init): Remove backspace/delete bindings.
(Bug#14392)