Extension hooks and skeleton of phongo, and basic bson implementation

I'm aware that we won't be calling any userland methods from C (we learned our lesson :), but I'm asking if the APIs should ultimately be the same, since users may use Server or Manager interchangeably in this respect and their interface for the three execute methods should probably be in sync.

I have a feeling that we discussed removing it altogether, but then decided that it needed to be taken at the very end because the fluent and bulk APIs dictate that -- and we'd otherwise have to construct the write batch all over again after a fluent/bulk chain is terminated.