Extension hooks and skeleton of phongo, and basic bson implementation

"that were actually modified" sounds fine. "Physically" is an odd word choice for bits and bytes, but we could say "electronically"?

I'm not sure if it was mentioned in the API spec, but this may also return null if we're dealing with legacy emulation, since `nModified` cannot be calculated reliably. So perhaps proto becomes `integer|null`?