On the fly loops with independent Data Paths
**Which version of the plugin are you using?**
[X] Data Populator for Sketch

**Is your feature request related to a problem? Please describe.**
Not really a problem, but it could make the plugin more flexible and scalable.

**Describe the solution you'd like**
- Run the plugin once with no `Data Path` defined and use layer groups to define independent, loopable keys/data paths.
- A new looping/datapath function that allows to create new loops with different Data Paths on the fly, with the same options available on the dialog.
- A new way to reference "parent" for Data Paths

Let's take this json structure as an example.
(I'm using the boarding pass as a starting point)
```
[  
  {  
    "id":1,
    "language":"FR",
    "flag":"https://www.countryflags.io/FR/flat/24.png",
    "departure":"Altoona, PA ",
    "from":"AOO",
    "destination":"Kaliningrad, Russia ",
    "to":"KGD",
    "airline":{  
      "code":"TK",
      "name":"Turkish Airlines",
      "short":"turkish",
      "logo":"https://s3-eu-central-1.amazonaws.com/datapopulator/boardingpass/turkish.png",
      "thumb":"https://www.gstatic.com/flights/airline_logos/70px/TK.png"
    },
    "gate":{  
      "label":"Porte",
      "value":"B93"
    },
    "class":{  
      "label":"Classe",
      "value":"Economy"
    },
    "boarding":{  
      "label":"Embarquement",
      "value":"9:47"
    },
    "date":{  
      "label":"Date",
      "value":"14.12.2018"
    },
    "flightnumber":9926,
    "flight":{  
      "label":"Vol",
      "value":"TK9926"
    },
    "passengers":[  
      {  
        "name":"Johnath Gillfillan",
        "seat":{  
          "label":"Siège",
          "value":"39N"
        },
        "qr_codes":[  
          {  
            "big_id":1788400002575,
            "big_code":"https://api.qrserver.com/v1/create-qr-code/?size=200x200&data=turkish1788400002575",
            "small_id":1788400002577,
            "smal_codecode":"https://api.qrserver.com/v1/create-qr-code/?size=50x500&data=turkish1788400002577"
          }
        ]
      },
      {  
        "name":"Dedra Gianninotti",
        "seat":{  
          "label":"Siège",
          "value":"40N"
        },
        "qr_codes":[  
          {  
            "big_id":1788400002585,
            "big_code":"https://api.qrserver.com/v1/create-qr-code/?size=200x200&data=turkish1788400002585",
            "small_id":1788400002588,
            "smal_codecode":"https://api.qrserver.com/v1/create-qr-code/?size=50x500&data=turkish1788400002588"
          }
        ]
      }
    ]
  }
]
```
Imagine you run the plugin with no Data Path define and no options selected. You selected the boarding pass design(demo) and you wanted to create multiple QR codes for different passengers. Imagine you wanted the plugin to create the whole thing in one go, instead of running the plugin once for the boarding pass and another time for the passengers' QR codes.

Imagine the demo design, but with a carousel with many QR codes for multiple passengers, or as many as defined on the json file, to better illustrate, here's how the layer panel setup could look like:
![layer_setup](https://user-images.githubusercontent.com/34353493/57255015-10ebdc00-7053-11e9-8441-74e8bab31427.png)

The idea would be that we could create a group that serves as the main reference to start looping, the group naming could be something like `#loop["passengers".grid('5:1','0:0').trim("ellipsis").randomize]` and the layers inside would use that reference to render, i.e.: `{[passengers].qr-codes.big_id}`. 

This setup would allow that group to use the `passengers` array as the `Data Path` for the group alone, allowing it to loop the `passengers` key independently of the "main" loop.

Would also be nice to allow for going back to the root data path at any point of the loop if no parent were specified, i.e.: `{flightnumber} - {[passengers].name}`, where `{flightnumber}` would be the same as `[0].{flightnumber}` and would return a value from outside of the defined `passengers Data Path` being currently looped.

I hope the idea is clear, let me know if you have any questions.

I'm having a lot of fun with the plugin, I could try and add this functionality myself with a merge request, but my skill is not good enough to the level you guys are coding :) 

Cheers!

