add built in cache support. Cache data can be imported/exported so it
can be re-used (on subsequent page loads for example). LIST and LSUB
are cached by default, commands issued when a mailbox is selected are
cached as long as the mailbox signature does not change. The signature
is a combination of the uidnext, uidvalidity, and exists values from
the SELECT response. there is also a bust_cache method that can
invalidate some or all of the cached data on demand.
add examples of the cache usage