Evaluate item[*]/item.* in list expressions for with_nested lookup

Support for the evaluation of list expressions that contain `item[*]`
or `item.*`. This allows to access the value that was in effect at
any of the previous (upper) levels at the current loop path/branch
in the nested loop.

For example, consider the following 3-level nested loop:

    with_nested:
       - ['a', 'b', 'c']
       - ['d', 'e', 'f']
       - item.0

item.0 will be evaluated to the value that is in effect at the first
level of the loop for each possible loop path. So, the following
loop paths (combinations) will be produced:

    ['a', 'd', 'a'], ['a', 'e', 'a'], ['a', 'f', 'a'], ['b', 'd', 'b'], ['b', 'e', 'b'], ['b', 'f', 'b'], ['c', 'd', 'c'], ['c', 'e', 'c'], ['c', 'f', 'c']

For a more practical example, consider the following setup:

At the hosts file:

    [somegroup]
    host1.example.org
    host2.example.org

    [anothergroup]
    host3.example.org

at the host_vars of host1.example.org:

    network_interfaces:
      - name: eth0
        address: 1.2.3.4
      - name: eth1
        address: 1.2.4.5

at the hosts vars of host2.example.org:

    network_interfaces:
      - name: eth0
        address: 1.2.3.5
      - name: eth1
        address: 1.2.4.6

Now, let's say you want from host "host3.example.org" to ping all
the network interfaces for each host in "somegroup". This patch
allows you to do that like this:

    hosts: host3.example.org
    command: /bin/ping {{ item.1.address }}
    with_nested:
      - groups["somegroup"]
      - hostvars[item.0].network_interfaces