Improve the conversation object - reduce items it depends on and that are passed to it

This simplifies the Conversation object a bit. It:

* Removes the dependency on Users (peerPresence wasn't required as a separate parameter)
* It moves the requirement for opening the window to the ConversationList - this seems a bit of a better place, as there's no real reason each Conversation object need to control the opening
* Removes some old code that was returning true or false depending if the peer matched - this is now handled within the ConversationList