inventory directory parser: add hosts to group non-recursively
inventory directory parser: add groups to parent_groups non-recursively
inventory directory parser: add host to group only once
inventory group: add groups to parent_groups only once
inventory groups: make sure group.depth is updated on all grandchildren
inventory ini parser: do not add all the groups to *all* group

but only those with lowest depth, so we keep a proper tree structure
inventory script parser: do not add all the groups to *all* group
Inventory: raise error when adding a group that already exists.

The parsers check if a group already exists.
InventoryDir: refactor logic

Make sure all hosts and groups are unique objects
and that those are referenced uniquely everywhere.
Also fixes test_dir_inventory unit tests which were broken after previous
patches.

	modified:   lib/ansible/inventory/dir.py