Use dicts for index lookup for improved performance
Raise correct exception
Implement __iter__ for IndexedPropertyCollection
Access index as a named parameter from IndexedPropertyCollection