CDRIVER-457 allow dbref's in bson_validate

when bson_validate is provided BSON_VALIDATE_DOLLAR_KEYS, correctly
handle the dbref style sub doc.

I.e. validate:

    {
        sub_doc : {
            $ref  : "string",
            $id   : "anything",
            $db   : "optional string",
            extra : "stuff"
        }
    }
reasonably good, but the scope is also limited enough that I'm not terribly worried.

1. This only applies if the user asks for dollar key validation
2. All of the complex handling only shows up if you have dollar keys.  Otherwise there's a pretty limited transition from LF_REF_KEY to NOT_DBREF.

I'm more worried that I'll let something through that I shouldn't