V2

Yes. I didn't migrate mongo features only bson cause we don't need them in service-bus. If we migrate mongo features to use new driver this extra allocations will go away. Also we can try to use stack memory instead heap allocations but not sure it will work cause legacy bson structure contains platform-dependent types and it's size is not aligned:
```
typedef struct {
    char *data;           /**< Pointer to a block of data in this BSON object. */
    char *cur;            /**< Pointer to the current position. */
    int dataSize;         /**< The number of bytes allocated to char *data. */
    bson_bool_t finished; /**< When finished, the BSON object can no longer be modified. */
    bson_bool_t ownsData; /**< Whether destroying this object will deallocate its data block */
    int err;              /**< Bitfield representing errors or warnings on this buffer */
    int stackSize;        /**< Number of elements in the current stack */
    int stackPos;         /**< Index of current stack position. */
    size_t* stackPtr;     /**< Pointer to the current stack */
    size_t stack[32];     /**< A stack used to keep track of nested BSON elements.
                               Must be at end of bson struct so _bson_zero does not clear. */
} bson;
```