Use shared cache per message to prevent race conditions
Much improved message pre-loading

+ Don't re-load message if already in local cache.
+ Determine which message to load based on direction user has moved
selection cursor.