Properly get unfolded message-id header field for draft, fwd, reply

* wl-draft.el (wl-draft-forward, wl-draft-reply,
  wl-draft-add-in-reply-to, wl-draft-send-mail-with-qmail,
  wl-draft-send-mail-with-smtp, wl-draft-send-mail-with-sendmail): Use
  elmo-get-message-id-from-header or elmo-get-message-id-from-buffer.
* wl-summary.el (wl-summary-cancel-message,
  wl-summary-supersedes-message): Likewise.
* elmo-nntp.el (elmo-nntp-post): Remove the invalid Message-ID header
  when the recommended ID is provided.
* elmo-util.el (elmo-get-message-id-from-header,
  elmo-get-message-id-from-buffer): New
  functions.  (elmo-msgdb-get-message-id-from-header): Use them.
* elmo-nntp.el (elmo-nntp-post):
  Likewise. (elmo-nntp-setup-crosspost-buffer): Likewise.
* elmo-cache.el (elmo-folder-append-buffer): Use
  elmo-msgdb-get-message-id-from-buffer.
Refactored `elmo-get-message-id-from-header'

* elmo-util.el (elmo-extract-std11-msgid-tokens): New
function. Extract msg-id tokens from std11-parsed field.
(elmo-normalize-msgid-field): New function. Return list of message-id
field values in field.
(elmo-get-message-id-from-field): New function. Return message-id
field value.
(elmo-get-message-id-from-header): Refactored. Use new functions.
New customizable: Prefer std11 parser over regexp

* elmo-vars.el (elmo-prefer-std11-parser): New customizable. Prefer
std11 parser over regexp.
* elmo-util.el (elmo-get-message-id-from-field): Use customizable.
Retain order of message-id values

* elmo-util.el (elmo-extract-std11-msgid-tokens): Retain order of
message-id values.
Rename `elmo-normalize-msgid-field'

* elmo-util.el (elmo-parse-msgid-field): Renamed from
`elmo-normalize-msgid-field'.
(elmo-get-message-id-from-field): Dto.
Handle case of missing message-id field

* elmo-util.el (elmo-get-message-id-from-header): Handle case of
missing message-id field.
Reverting "Handle case of missing message-id field"
Revert "Handle case of missing message-id field"

This reverts commit 814d9cb574cf9d1bf156406fc8d737b933b79c78.

Sorry, it's early in the morning here.
Remove `strict' parameter, dynamically bind `elmo-prefer-std11-parser'

* elmo-nntp.el (elmo-nntp-post): Dynamically bind
`elmo-prefer-std11-parser'.
* elmo-util.el (elmo-get-message-id-from-field)
(elmo-get-message-id-from-header)
(elmo-get-message-id-from-buffer): Remove `strict' parameter,
dynamically bind `elmo-prefer-std11-parser' instead.
Dynamically bind `elmo-prefer-std11-parser', crosspost setup

* elmo-nntp.el (elmo-nntp-setup-crosspost-buffer): Dto.
Fallback to std11 parser if regexp doesn't match

* elmo-util.el (elmo-get-message-id-from-field): Fallback to std11
parser if regexp didn't match.
* elmo-vars.el (elmo-always-prefer-std11-parser): Renamed from
`elmo-prefer-std11-parser', default to nil.
Add support for Emacs24 built-in GnuTLS

* wl-draft.el: Do not define autoload for `open-ssl-stream'.
(wl-template): Require elmo-net.el.
(wl-smtp-extension-bind): Respect `elmo-network-stream-type-alist' for
over SSL/TLS connection.
* elmo-net.el (elmo-open-network-stream): Raise error when open
connection function failed.
* elmo-nntp.el (elmo-folder-initialize): Do not modify
elmo-network-stream-type-alist.
* elmo-vars.el (elmo-network-stream-type-alist): Check whether
gnutls.el or tls.el is available.