bson: Convert _bson_build_add_single to a macro.
bson: Convert _bson_build_add_single to a macro.

The way we used va_list (using va_arg() on the same list from two
different functions) is not supported and fails on some platforms (for
example, on armel), and va_copy() does not solve our problem.

To fix that, convert _bson_build_add_single() to a macro instead.

algernon/libmongo-client,algernon/libmongo-client,algernon/libmongo-client