Handle lower msgpack versions which can't handle `OrderedDict`'s. Fixes #5017.

Dictionary subclasses were only added to msgpack after 0.2.0(inclusive).
Since `isinstance(OrderedDict(), dict)` returns true, of course, msgpack's custom type handling cannot be used.
The solution is to iterate through the data and convert `OrderedDict`'s to `dict`'s since that's what msgpack also does.
For now, the iteration is a top level one, ie, only first child descendants are evaluated. We won't go deeper unless we get the same failure a little deeper in the nested data.
Merge pull request #5087 from s0undt3ch/issues/5017

Handle lower msgpack versions which can't handle `OrderedDict`'s.