(WIP) CDRIVER-400 Add a customizable client callback table

Basic skeleton for a customizable callback table, primarily for use by the PHP driver.  Some things:

-need to figure out what callbacks we need
-need to figure out best places/multiple places to include triggers
-I'm sure I've massacred the style on this
Generally speaking, all of libbson and libmongoc use fully namespaced function names based on the type they work upon. In this case, it looks like you are setting this process wide (rather than say on a `mongoc_client_t`), so I would suggest `mongoc_set_client_observer (const mongoc_client_ovserver_t *observer, void *user_data)`. I suggest the `void *user_data` parameter so that the callees can have convenient access to their necessary data structures.

I'd also consider whether or not it makes sense to assign the observer callbacks on the client itself.