Be defensive about ivanhoe posts' missing roles.

This indicates that the database is corrupt, so we're generally throwing
exceptions when a post does not have a valid role.