bson: new bson_t implementation.

This includes data hiding via an opaque structure. This should help us
maintain ABI compatibility a little better. This also reduces the difference
between all the various uses of a bson_t into a single question. Is it
an inline data or allocated data section.