Rework distribution fact checking to be a little less heinous and add
support for Mandriva.

Fixes #9282
Update the core and extras submodules
Fixing item loop when undefined variable errors occur because of missing attributes

Fixes a case where the variable 'foo' may exist, but the with_items loop
was used on something like 'foo.results', where 'results' was not a valid
attribute of 'foo'. Prior to this patch, conditionals were not evaluated
until later, meaning there was no opportunity to allow a test to skip the
task or item based on it being undefined.
Fixing bad variable naming choices
add missing headers, rm the subtree of ansible/inventory as we wish to overhaul it.
Start converting asserts to self.assert*() so we get better error messages
Update other asserts that have a py2.6 unittest method
Python3 fix
Python3 fix
Python3 test target and use coverage for all v2 tests.