Make API endpoints take Lists instead of Iterables as arguments
- clients crash when they call the API with an iterator
- some backend implementations violate the contract by assuming the argument is a sequence (eg. by iterating twice on it, and assuming the elements are the same)
- no matter what we do, the endpoints will always get a list as argument in practice, because they go through the RPC framework
- there is no concrete (ha!) advantage in taking an Iterable rather than a List.
Migrated from D3636 (view on Phabricator)