Extension hooks and skeleton of phongo, and basic bson implementation

`proto` missing return value and `@param`, if you're doing that.