added bson_new_from_buffer

a bson_new that accepts a possibly pre-alloc'd buffer controlled by
the caller and manipulated with a callback.  Useful for wrappers or
language bindings.