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.