* elmo.el (elmo-folder-reserve-status-p): New method.
* elmo-shimbun.el (elmo-shimbun-headers-cache): Abolish.
(elmo-shimbun-use-entire-index): New user option.
(shimbun-elmo-mua): New class.
(shimbun-mua-search-id): Define.
(shimbun-mua-use-entire-index): Ditto.
(elmo-shimbun-folder:last-check): New slot.
(elmo-shimbun-headers-cache-header-list): Abolish.
(elmo-shimbun-headers-cache-set-header-list): Ditto.
(elmo-shimbun-headers-cache-header-hash): Ditto.
(elmo-shimbun-headers-cache-set-header-hash): Ditto.
(elmo-shimbun-headers-cache-last-check): Ditto.
(elmo-shimbun-headers-cache-set-last-check): Ditto.
(elmo-shimbun-headers-check-p): Rewrite.
(elmo-shimbun-msgdb-to-headers): New function.
(elmo-shimbun-get-headers): Rewrite.
(elmo-folder-initialize): Set 1st argument of `shimbun-open'.
(elmo-folder-open-internal): Get headers only if
`elmo-shimbun-headers-check-p' is non-nil.
(elmo-folder-check): Check only if `elmo-shimbun-headers-check-p'
is non-nil.
(elmo-shimbun-msgdb-create-entity): Re-use old msgdb entities.
(elmo-quit): Removed.
* elmo-msgdb.el (elmo-msgdb-overview-entity-get-extra): New inline
function.
(elmo-msgdb-overview-entity-set-extra): Ditto.
(elmo-msgdb-make-overview-hashtb): Make hash if overview is non-nil.
* elmo-map.el (elmo-folder-status): Don't call
elmo-folder-close-internal if `elmo-folder-reserve-status-p'
is non-nil.