I don't have super strong feelings about whether we keep the pickle session serializer around, though I do think it's something of a security foot-gun. Regardless, I think that best-practice, especially for code that's intended for reuse, should be to only ever store simple native data structures in the session, so I think that's what we should model in `contrib.messages`. And I don't think `contrib.messages` should jump through hoops (and know way more about serialization formats than it really has any reason to) just in order to be slightly more efficient for the rare case when someone has a good reason to use a pickle serializer.