Reverted to using boost::intrusive_ptr in BSONObj. Using std::shared_ptr as in
kloplop321's version seems to cause BSONObj to fail validation.