Expose ExternalData functions to Lua, e.g. `mw.external.web` for `{{#get_web_data:}}`.
Pass parameters to them as tables, e.g., make the effectively named, e.g.:
```
local cities = mw.external.web {
url = 'https://discoursedb.org/GermanyCSV.txt'
, data = 'bordered countries=Borders,population=Population,area=Area,capital=Capital'
, format = 'CSV with header'
}
```
Allow to pass comma-separated strings as tables:
```
local cities = mw.external.web {
url = 'https://discoursedb.org/GermanyCSV.txt'
, data = {
['bordered countries'] = 'Borders'
, population = 'Population'
, area = 'Area'
, capital = 'Capital'
}
, format = 'CSV with header'
}
```
Make them return the fetched values as tables.
Add `flip` parameter to bound functions that makes returned tables row-based rather than column-based, which will be more natural in Lua context.