implement site extension gallery feature

This is to kick off and try to land on API contract for Site Extension Gallery feature.  I would start looking at ISiteExtensionManager and SiteExtensionInfo first.   There are many TODOs that we need to discuss (see TODO remark).