V2

legacy API accepts bson type:
```
typedef struct {
    char *data;           /**< Pointer to a block of data in this BSON object. */
...
} bson;
```
And libbson API accepts similar:
```
BSON_ALIGNED_BEGIN (128)
typedef struct
{
   const uint8_t *raw;      /* The raw buffer being iterated. */
 ...
} bson_iter_t
BSON_ALIGNED_END (128);
```
This structures incompatible so we need to allocate it but size is small and performance won't hurt. Only internal buffer is compatible, all data(int's, strings, binary, etc) are stored it this buffer.