Standard Java serialization is slow on Android. Replacing it w/
parcelable makes it around 10x faster (on a N1, with ~ 500 messages
in the list).
To avoid further confusion and potential bugs MessageReference was
made no longer implement Serializable.
Keep search results in sync with newly arrived or deleted messages.
Intentionally does not remove messages from search results due to
flag (flagged/starred or read/unread) state changes, because that
would be awkward while manipulating messages in search results.
Pass around simple Serializable MessageReference objects containing
account UUID, folder name and message UID so that MessageView can
traverse lists of messages which span folders and accounts.