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.
Actually, I really don't know why you do this part, there's zero need for it, you already have a conversation in `@conversation` and the actual thing this should test is completely unrelated to this. You basically test that the before callback is working correctly, instead of testing the actual code change here.