support sequences in extract()

`process.extract` requires `choices` to be a list, but the logic should work with any sequence type. This adds supports for tuples, sets and generators.