test codewscope
ensure we don't memcpy() past buffer region.
use visitors for bson validation.

this gets us both validation of schema using bson_iter_t and validation
of utf8, etc using visitor callbacks. it also gets us validation in sub
documents and arrays.
add test for bson_validate() and $ in field key.