bson: don't use C11 unnamed union in bson_t.

We intend to be C89, so this is not going to work.
cbson: add a constant for _id string.
context: don't leak context memory.
bson: check the parent bson for NO_GROW if a child bson.
tests: ensure rollback occured after passing size boundry.
Some 32-bit fixes.
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.
README: Add section on bson_writer_t.
README: add some performance tips.
build: add warning for unstable builds.
README: add yum install for basic build system.
bson: add bson_copy() to copy a bson_t structure.
iter: implement bson_iter_init_find_case().
thread: cond and mutex macros.
thread: add bson_cond_signal()
bson: abstract for matching keys with length.
iter: implement bson_iter_find_descendent().

This allows you to find a child document using the dot notation such
as "a.b.c.0". The children can be documents or arrays.
tests: add test for bson_iter_find_descendant().
string: add bson_strdupv_printf()
thread: add BSON_MUTEX_INITIALIZER.