Adds missing comments on collection class methods
Fixes: missing exception class import
Changes iterator class properties scope to protected (tests purposes)
Fixes: making iterator properties null instead of delete them on invalid state.
Adds collection iterator unit tests.