Allow creation of Inventory class from a dictionary

This will implement a new InventoryDictionary class which is called whenever Inventory(host_dictionary) is called with host_dictionary a dictionary group-list_of_hosts like::

    {'group': ['host1', 'host2']}

or a more complex dictionary containing also per-host variables, like::

    {'group1': {'host1': {'key1': 'value1', 'key2': 'value2'},
                   'host2': {'key3': 'value3'}}}