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.
bugfix: NPM may return JSON arrays which were not supported by the NPM module and the NPM state.
Merge pull request #5089 from shintonik/develop

Bugfix: NPM module and state (support for JSON Arrays)
Merge pull request #5087 from s0undt3ch/issues/5017

Handle lower msgpack versions which can't handle `OrderedDict`'s.
Fix #5092
Fallback to base per #5092
Use the 'rev' arg in git.rebase, Fix #4767
Add to doc examples for remote rebases
Merge pull request #5096 from basepi/rebase4767

Use the 'rev' arg in git.rebase, Fix #4767