BatchCursor currently returns a batch as a slice of BSON documents one after the other. While this works, it requires copying bytes from their array format into a document sequence.
Add a new type, bsoncore.DocumentSequence, that contains a slice of bytes, boolean indicating if the slice of bytes is a document sequence or a BSON array of documents, and an int32 indicating the position of the start of the next document.
This type should have a Documents method that will return a []bsoncore.Document. This type should also have a Next method which returns a bsoncore.Document and an error.