Making sure that we are only responding to a message (inlining the message in the task subject and body) if there was a message task that put us in the current state and we are messaging the author of that message. Improving the check in the messages list so that we exclude task messages only if they correspond to an active assigned task that will respond to them instead. Minor UI fixes
making sure tasks that have timed out show up in the case log and that admins are notified. We are now signing up admins for all actions in the simulations they admin.
fixing bug in action::execute - it wouldn't work when executed outside an HTTP request (from the timeout sweeper). Now timeout tasks will have a null user_id which is not ideal. We might want to pass on the trigger type (time) to the case log entry to more clearly indicate when an action timed out.