Persist inbound text messages

When we receive a text message, we'll persist it in the database and enqueue it for processing. If processing fails, Resque 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`.