Site: add canonical namespaces to site._namespaces

Needed to identify which namespaces can be accessed by an Extension.
E.g. Proofread Page works on Page and Index namespaces, which keep the
same name as 'canonical' namespaces but not as 'actual' namespaces.

Code improvements as well

Preparation for ProofreadPage class.

Change-Id: I58d67501e00ff9f1afdbdde97ac43bd7aeb40963
Merge "Site: add canonical namespaces to site._namespaces"