Split API classes and interfaces

Both cursor classes can probably share most all of their code (the "first batch" stuff would just be unused for query cursors), especially if libmongoc is already abstracting command and query cursors for us.