Use PyObject_SelfIter.
Add some asserts.
'bool' isn't a C89 type.
BSONDocumentIterator remembers its position more simply.
Fix ref undercount in BSONDocument_Subscript().
Simplify declaration of BSONBuffer_IterNext.
After encountering invalid BSON, BSONBuffer.next() always raises InvalidBSON.
Check bson_iter_key return value.
Fix InvalidBSON test.