Persist inbound text messages

When we receive a text message, we'll now persist it in the database and enqueue it for processing. If processing fails, Rescue will track the processing job as failed. We can address the error and safely retry or cancel the processing job.

Includes a refactoring of `InboundMessageProcessor` into two classes, `TextMessage::AttendanceProcessor` and `TextMessage::RegistrationProcessor`.