Huge refactoring of _Cursor class -> _IteratorCursor.

This is because there will be more types of cursors.
New PseudoKindCursor to support __kind__ queries.

This is needed for Development Console's Datastore Viewer.