accepted_file_types: dynamically determine
messages: do not delete, only tag as "dismissed"

this will allow (a later version) to let users see messages they've already read
check-message: send dismiss_message request only once and then get confirmation for it
user/last_access: use shared memory instead of datastore
broker: implement a background thread
broker: maintain a "JobBroker" object in datastore
broker: auto-shutdown when idle for at least 30 minutes