RUBY-698 adding deserialization options to collection#find and bson

This is some preliminary work in bson to allow for arbitrary options to be passed down at deserialization. The main motivation for these changes is to allow a user to specify that regexps should not be compiled upon deserialization.  I've made the API flexible enough so that if further deserialization options are added in the future, we can easily support them without too many changes.

Given my limited experience in C, I wanted to get a code review on this before adding the Regexp Wrapper class and further functionality.

I'd like reviewers to double check:

1. C syntax and correctness
2. Driver API integrity (no API breaking changes should be introduced)

Thanks!