Gnus: Add option to sort threads non-recursively

gnus-sum.el (gnus-sort-threads-recursively): New defcustom.
(gnus-sort-threads): Use it.
gnus.texi (Sorting the Summary Buffer): Document new defcustom `gnus-sort-threads-recursively'.
Keybinding fix for vc-dir.

* lisp/vc/vc-dir.el (vc-dir-mode-map): Add binding for vc-root-diff.
* doc/emacs/maintaining.texi (VC Directory Commands): Mention `D' and `L' in vc-dir.
ChangeLog fix.
* lisp/format.el (format-annotate-function): Handle read-only text properties 
in the source.
lisp/desktop.el: Restore frames at their positions, even if offscreen.
(desktop--make-frame): Apply most frame parameters after creating the frame
to force (partially or totally) offscreen frames to be restored as such.
* configure.ac: Extend the --with-sound option
to allow specification of OSS or ALSA (see bug#14812#64).
Auto-commit of generated files.
Make Java try-with-resources statement parse properly.

progmodes/cc-langs.el (c-block-stmt-1-2-kwds, c-block-stmt-1-2-key): New
language constants/variables.
progmodes/cc-engine.el (c-beginning-of-statement-1, c-after-conditional): Adapt
to deal with c-block-stmt-1-2-key.
progmodes/cc-fonts.el (c-font-lock-declarations): Adapt to deal with
c-block-stmt-1-2-key.
Fix focus-out events on MS-Windows.

 src/w32term.c (w32_read_socket) <WM_KILLFOCUS>: Call
 w32_detect_focus_change instead of doing part of its job by hand.
 This fixes the problem whereby FOCUS_OUT events were not sent to
 the event queue.
* calendar/todo-mode.el: Add command to rename todo files.
(todo-rename-file): New command.
(todo-key-bindings-t): Add key binding for it.  Change the
bindings of todo-filter-regexp-items(-multifile) to use `x'
instead of `r', since the latter is better suited to the new
renaming command.
Fontify a Java generic method as a function.
* progmodes/cc-langs.el (c-recognize-<>-arglists): Set the Java
value to t.
Merge from trunk
Merge from CEDET upstream (8569).

* lisp/cedet/semantic/edit.el (semantic-edits-splice-remove): Wrap
  debug message removing middle tag in semantic-edits-verbose-flag
  check.

* semantic/bovine/el.el (semantic/db-el): New require.

* semantic/db-el.el (semanticdb-normalize-one-tag): It might be that a
  symbol comes from a file but cannot be found in its table.  This
  happens for instance when a symbol was dynamically created through a
  macro like `defstruct'.  In this case, return the original tag.
  (semanticdb-elisp-sym->tag): Deal with autoloaded functions, where
  the argument list is not available until the file is loaded.
 Merge CEDET upstream (rev. 8569)
Spelling fixes.
lisp/desktop.el: Optionally force offscreen frames back onscreen.
(desktop-restoring-reuses-frames): New option.
(desktop--compute-pos, desktop--move-onscreen): New functions.
(desktop--make-frame): Use desktop--move-onscreen.
* doc/emacs/glossary.texi (Glossary): Add some entries.
Fix bug #14970 with crashes when deleting many frames on MS-Windows.

 src/w32fns.c (w32_wnd_proc) <WM_IME_STARTCOMPOSITION>: Make sure the
 frame which got the message is still alive, before dereferencing
 its pointer.
 src/frame.c (delete_frame): Test "this" frame's minibuffer window to
 be a live window, before using it as such.
* frame.c (delete_frame): Avoid unnecessary 'this_f' test.
* calendar/todo-mode.el (todo-rename-file): Fix incorrect use of
replace-regexp-in-string and inadvertent omissions in previous change.
(todo-filter-items): Ensure only file names are comma-separated in
renamed filtered items buffer.