Ensure entity correctness

Since identity of entities is such a central issue within the entity
system, I feel not comfortable with lots of methods just silently
failing / returning null for missing entities.

This adds an EntityNotFoundException that is thrown by all methods that
reference an entity. This entity not (or no longer) existing is an
error state we do not want.