Add EventQueue and refactor router frontend to use client/cache

@pmorie 
> The point is to get the final state that the object was *in the store* before it was deleted

Okay, cool. As long as it's specified (which it is) then no objection- ultimately the actual usage patterns will decide whether the stated behavior is the "correct" behavior.