Allow with_nested to loop through data structures

This change allows nested lists to refer to the current item in an outer list
using item[0] and item[1] and so on inside the with_nested clause. It does
this by performing the expansion variables on each iteration instead of just
once at the beginning, subsituting in the current values of each.

For example:

Variable data:

    ---
    users:
        foo:
            ssh_keys:
                - "key1"
                - "key2"
        bar:
            ssh_keys:
                - "key3"
                - "key4"

and a task of:

        - debug: msg="{{item[0]}} - {{item[1]}}"
          with_nested:
            - users.keys()
            - users[item[0]]['ssh_keys']

Will give:

    ok: [default] => (item=['foo', 'key1']) => {"item": ["foo", "key1"], "msg":
    "foo - key1"}
    ok: [default] => (item=['foo', 'key2']) => {"item": ["foo", "key2"], "msg":
    "foo - key2"}
    ok: [default] => (item=['bar', 'key3']) => {"item": ["bar", "key3"], "msg":
    "bar - key3"}
    ok: [default] => (item=['bar', 'key4']) => {"item": ["bar", "key4"], "msg":
    "bar - key4"}