fix iteration over Client

I didn't intend for Client to be iterable, but defining `__getitem__` makes it iterable as long as engine IDs are continuous (not always the case).

This explicitly defines `__iter__` so it behaves consistently.

closes #5519