Reset cursor position when a new iterator is created on a TypedCursor 

Encountered an issue when trying to iterate over the same list more than once:

for (T t : ts) {
    do something ...
}
...
for (T t : ts) {
    want to do something else but cursor already at last position :(
}