fix(bson) set correct BSONBinaryReader into correct state after piping nested document to BSONBinaryWriter
refactor(driver) narrow type from Codec<T> to Decoder<T> when getting decoder for a field
fix(driver-compat) make DBCollection to use provided decoder factory for findAndModify command
fix(driver-compat) support decoder factory in DBCursor