value: add bson_value_t for convenience boxed type. [ABI Break]

This adds a new type, bson_value_t for retrieving boxed types from
a bson_iter_t. It will make binding from other languages a bit simpler.
Also, I intend to make bson_visitor_t much simpler using this type as
we can consolidate callbacks into just a couple of them.