Extract behavior from Todo.from_rich_message

`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.
TodoFromRichMessage is really a service object
Pull out RichMessageExtractor

No need to have it embedded
  when it should be unit tested!
Merge pull request #193 from mattdbridges/extract-rich-message

Extract behavior from Todo.from_rich_message