CRUD results and tests 

We should change the return type for upserted_id() to `bson::element` and possibly `optional<bson::element>` if we don't always have it.