Model iteration setup

I initially had more than this, but pared it down after a conversation about the first iteration of this feature.

My other work is here: https://github.com/dimagi/Vellum/compare/hq-data-api
The way I envisioned it `endpoint` was a function, which would allow maximum flexibility for use cases where a simple ajax URL query is not good enough. Maybe that's too much big design up front since our tests are the only user of this alternate option type and they don't need a function?

The counter-argument is to keep the interface as simple as possible since this is an external interface of Vellum: only accept URL string or function. If we allow a list now, but later realize we also need to accept a function for more complicated use cases then we have three argument types to switch on: URL string, function, list. Switching on argument type can be error prone and also makes debugging harder, so I would lean toward keeping the number of accepted types to a minimum.