Add consistent cache key generation, so sets/deletes are always using the same keys

Previously, since cache keys were generated ad-hoc where they were
used, it was possible to delete a guest author and not have all the
caches properly cleared, making it impossible to recreate that user
(with the same display name) until the caches expired naturally.

Fixes #144