Support recursive multipart messages, and add a Source.reprocess_content() method to allow re-saving representations after code changes like this one