First draft of custom binary type handling

Previously, if you didn't want to use BSON's Binary datatype
to represent binary data in the resulting BSON, then you were out
of luck.  Now, you can install your own handler for
BSON_BINARY_DATA_USER_DEFINED to allow you to use a binary data
representation of your choice.

Still needs testing.