`Todo.from_rich_message` was partially tested from the MessageGateway, but it is mostly untested and does not belong in Todo due to it's unique nature. Extract it entirely from `Todo` into it's own dedicated object for unit testing.
Conflicts: Gemfile.lock config/routes.rb
Includes a monkey patch for Arel that may need to be removed when 4.0.0 final ships