conversations: handle ghost conversations
conversations: handle ghost conversations

fixes CNVS-11205

I don't know how we're still getting empty conversations
in people's inboxes, but we can't let it break everything.
See https://gerrit.instructure.com/#/c/27121/
and https://gerrit.instructure.com/#/c/26059/ .

test plan:
  * In your Rails console, run something like this:
    user = User.where(name: 'a6cc2cef7d25f27847876bdb81651755fcebacf0@instructure.com').first
    deleted = user.all_conversations.where(message_count: 0).limit(1)
    deleted.update_all(last_message_at: Time.now)
  * Open your user's inbox in old conversations.
  * Click on each of the conversations in the inbox and verify that the
      corresponding messages load in the right pane.

Change-Id: Ia605ac0b2392ca4b1983bca291d4685a5a818f7a
Reviewed-on: https://gerrit.instructure.com/30159
Tested-by: Jenkins <d95b56ce41a2e1ac4cecdd398defd7414407cc08@instructure.com>
Reviewed-by: Joel Hough <4816dabf8db1bc6cac35b3a24cab2ff844b5b0c7@instructure.com>
QA-Review: Matt Fairbourn <5f353e1c97bb9cc046b9db20beca0b9392f6f1b2@instructure.com>
Product-Review: Braden Anderson <a6cc2cef7d25f27847876bdb81651755fcebacf0@instructure.com>

jay3126/canvas-lms,whalejasmine/canvas-lms,va7map/canvas-lms,wye0220/shindig-canvas,kyroskoh/canvas-lms,utkarshx/canvas-lms,skmezanul/canvas-lms,skmezanul/canvas-lms,roxolan/canvas-lms,djbender/canvas-lms,djbender/canvas-lms,jay3126/canvas-lms,venturehive/canvas-lms,sfu/canvas-lms,tgroshon/canvas-lms,usmschuck/canvas,venturehive/canvas-lms,Jyaasa/canvas-lms,djbender/canvas-lms,wrdsb/canvas-lms,arrivu/hoodemo,Rvor/canvas-lms,SwinburneOnline/canvas-lms,sfu/canvas-lms,sdeleon28/canvas-lms,redconfetti/canvas-lms,arrivu/arrivu-lms,roxolan/canvas-lms,kyroskoh/canvas-lms,kyroskoh/canvas-lms,arrivu/arrivu-lms,efrj/canvas-lms,sdeleon28/canvas-lms,SwinburneOnline/canvas-lms,Jyaasa/canvas-lms,Unow/canvas-lms,grahamb/canvas-lms,djbender/canvas-lms,samuels410/greatlakes-lms,HotChalk/canvas-lms,shidao-fm/canvas-lms,arrivu/hoodemo,leftplusrightllc/canvas-lms,utkarshx/canvas-lms,usmschuck/canvas,antoniuslin/canvas-lms,sfu/canvas-lms,whalejasmine/canvas-lms,sdeleon28/canvas-lms,SwinburneOnline/canvas-lms,antoniuslin/canvas-lms,arrivu/arrivu-lms,wrdsb/canvas-lms,antoniuslin/canvas-lms,usmschuck/canvas,juoni/canvas-lms,wye0220/shindig-canvas,Jyaasa/canvas-lms,shidao-fm/canvas-lms,grahamb/canvas-lms,tgroshon/canvas-lms,juoni/canvas-lms,jay3126/canvas-lms,arrivu/hoodemo,utkarshx/canvas-lms,ShreniiNepal/shrenii_lmp,shidao-fm/canvas-lms,va7map/canvas-lms,shidao-fm/canvas-lms,redconfetti/canvas-lms,grahamb/canvas-lms,samuels410/greatlakes-lms,Rvor/canvas-lms,Rvor/canvas-lms,Rvor/canvas-lms,efrj/canvas-lms,usmschuck/canvas,samuels410/greatlakes-lms,efrj/canvas-lms,skmezanul/canvas-lms,juoni/canvas-lms,greyhwndz/canvas-lms,SwinburneOnline/canvas-lms,greyhwndz/canvas-lms,greyhwndz/canvas-lms,HotChalk/canvas-lms,greyhwndz/canvas-lms,Unow/canvas-lms,va7map/canvas-lms,tgroshon/canvas-lms,sfu/canvas-lms,juoni/canvas-lms,Unow/canvas-lms,fronteerio/canvas-lms,sfu/canvas-lms,fronteerio/canvas-lms,jay3126/canvas-lms,roxolan/canvas-lms,venturehive/canvas-lms,leftplusrightllc/canvas-lms,utkarshx/canvas-lms,venturehive/canvas-lms,skmezanul/canvas-lms,efrj/canvas-lms,HotChalk/canvas-lms,ShreniiNepal/shrenii_lmp,grahamb/canvas-lms,wrdsb/canvas-lms,fronteerio/canvas-lms,antoniuslin/canvas-lms,wye0220/shindig-canvas,fronteerio/canvas-lms,sfu/canvas-lms,wrdsb/canvas-lms,tgroshon/canvas-lms,HotChalk/canvas-lms,redconfetti/canvas-lms,whalejasmine/canvas-lms,whalejasmine/canvas-lms,sdeleon28/canvas-lms,leftplusrightllc/canvas-lms,grahamb/canvas-lms,sfu/canvas-lms,samuels410/greatlakes-lms,kyroskoh/canvas-lms,redconfetti/canvas-lms,ShreniiNepal/shrenii_lmp,leftplusrightllc/canvas-lms,va7map/canvas-lms,Jyaasa/canvas-lms,ShreniiNepal/shrenii_lmp,roxolan/canvas-lms