Request-independent messaging on top of django.contrib.messages