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.
bson-metrics doc_size_max and doc_size_average
Updates for MacOS and Xcode
Merge pull request #44 from gjmurakami-10gen/master-metrics

bson-metrics doc_size_max and doc_size_average
Merge pull request #46 from paulmelnikow/gitignore

Updates for MacOS and Xcode
Add a couple more useful helpers
Merge pull request #49 from paulmelnikow/helpers

Add a couple more useful helpers
Merge pull request #51 from hanumantmk/realloc_func_ctx

Add a realloc ctx to bson_writer_new
bson: add bson_destroy_with_steal().

This allows, for non-read-only bson_t, to steal the underlying buffer.
In the case of inline buffers, a new buffer is allocated for the result
and returned for the convenience of the caller.

The caller must call bson_free() on the result when they are done with
the data.
bson: be a bit more defensive with stealing data.
bson: make bson_destroy_with_steal() equivalent to bson_destroy() if !steal
doc: add docs for bson_destroy_with_steal().
build: add bson_realloc_ctx() to windows ABI.
iter: cast to suseconds_t from int64_t.
reader: len is signed.
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.
bson: whitespace cleanup.
bson: free state in case of failures.
Fix endian handling for date_time and timeval

bson_append_date_time wasn't doing little endian conversion and
bson_append_timeval was doing it instead of letting
bson_append_date_time handle it (it wraps date_time)

Fix that stuff
build: add symbol to win32 abi