Make wl-highlight-message use the citation depth for choosing the face.

Rather than using a stateful algorithm for choosing arbitrary but
distinct faces for the various citation prefixes in the message,
this uses the citation depth for plain citations and an arbitrary
hash of the attribution name for SC-style attributions.
Implement draft highlighting using jit-lock-mode.

This uses Emacs' 21 native highlighting mechanism, and is enabled
by default if available.
elmo-util.el (elmo-max-of-list): Refactored.
elmo-util.el (elmo-max-of-list, elmo-cache-get-path-subr, elmo-warning): Explicit function's symbols.
elmo-util.el (elmo-max-of-list): Fix the last change for the case argument is nil.
Improve performance of uniquifying large list of sortable numbers.
wl-summary.el (wl-summary-default-subject-filter): Minor refactoring.
Keep multiple parent Message-IDs in msgdb.
elmo-util.el (elmo-list-diff): Simplified.  Sort each element of return value.
wl-summary.el (wl-summary-insert-thread): Report progress.
Refactor sending of IMAP4 literals, add logging

* elmo-imap4.el (elmo-imap4-send-command): Refactor sending of
  literals, add logging.
Factor out creation of IMAP command tag

* elmo-imap4.el (elmo-imap4-command-tag): New function. Return IMAP
  command tag.
(elmo-imap4-send-command): Use new function to obtain command tag.
Factor out waiting for server response when parsing

* elmo-imap4.el (with-elmo-imap4-session-process-buffer): New
  macro. Execute BODY in a sessions' process buffer.
(elmo-imap4-command-tag): Use new macro.
(elmo-imap4-session-wait-response-maybe): New function. Wait for
  server response when in parsing state.
(elmo-imap4-send-command): Use new function.
Factor out function to send string to session process

* elmo-imap4.el (elmo-imap4-session-process-send-string): New
function. Send string to session process, facoted out from
`elmo-imap4-send-string`.
(elmo-imap4-send-string): Use factord out function.
(elmo-imap4-send-command): Use new function to send to process.
Use list to build final command string

* elmo-imap4.el (elmo-create-folder-plugged): Remove leading and
trainling space from IMAP command particle.
(elmo-imap4-session-select-mailbox)
(elmo-imap4-session-unselect-mailbox, elmo-imap4-clear-login)
(elmo-imap4-server-diff-async, elmo-imap4-folder-status-plugged)
(elmo-folder-list-subfolders, elmo-folder-delete)
(elmo-folder-rename-internal, elmo-imap4-copy-messages)
(elmo-folder-delete-messages-plugged)
(elmo-imap4-folder-diff-plugged, elmo-folder-open)
(elmo-folder-create-plugged, elmo-folder-append-buffer)
(elmo-folder-next-message-number-plugged)
(elmo-message-fetch-field): Dto.
(elmo-imap4-send-command): Use a list to build final command string.

Building a list makes it easier to ensure that there is only one SPC
between the command particles.
Remove trailing spaces from search particles

* elmo-imap4.el (elmo-imap4-search-build-full-command): Simplified.
(elmo-imap4-search-generate-vector)
(elmo-imap4-search-generate-and, elmo-imap4-search-generate-or):
Remove trailing spaces.
Don't use string-empty-p to check for empty string

* elmo-imap4.el (elmo-imap4-send-command): Don't use string-empty-p to
  check for empty string.
Merged from upstream.
Don't recompute in-header in wl-draft-default-jit-highlight.

This was wrong, since point may have changed by then, and caused
mis-highlighting of the first line if it was quoted.
Remove trailing space from IMAP command particle

* elmo-imap4.el (elmo-folder-append-buffer): Remove trailing space
  from command particle.