Add a realloc ctx to bson_writer_new

Add a realloc_func_ctx to bson_writer_new and thread an additional
realloc_func_ctx on bson objects to allow for custom reallocs with a
handle.  This is to provide support for custom allocators without global
storage.  One that comes to mind is a pool allocator, where the context
object is a specific pool.