New "fake py dict which is actually a list" and test.
Implement properly and test iterators on fake py dict.
Tidy up some of the naming of iterators.

Long type names, I know, but IMHO by necessity.
Add assertions and failing tests for semantics not yet defined.
Test as_list() on a dict-like py list.
Test exception is correctly raised when we call as_list() on an irrelevant dict.