Destroy conversation when all participants leave it

When all participants of a conversation leave it, conversation remains in db.

Due to private issues, when nobody is seeing it, it should be destroyed.

Test is long but I think it accurately ensures expected behavior.
I think this should be an after_destroy callback in ConversationVisibility.