Refactor message processing

List actions (send/admin) are checked before calling them; this is cleaner than what happened previously, with handle_send_action returning true or false.