Bullet-proof change descriptions with deleted file attachments.

Because of the ways that file attachments and change descriptions are stored,
it's possible to delete a file attachment from the database but still have its
old pk referenced from the change description. In this case, trying to render
that change description would crash because it no longer exists.

This change adds some bullet-proofing to ensure that we don't show a traceback.

Testing done:
Ran unit tests.

Reviewed at https://reviews.reviewboard.org/r/6563/