Avoid ConversationList/ComposeMessage activity leaks

First, ConversationList activity leak, Contact.mListeners are only unbound
when ListItemViews are recycled, without considering the activity exit case
or message delete case.
Second, ComposeMessage activity leak: use SoftReferences instead of
HardReferences for the slideshow cache.

Change-Id: Ic235b31403b26aba16bf6b8b51bff7b4c6f68d98