Make obsolete site object can be created

Per discussion, this patch makes it possible to create an obsolete
site object while the site object will be prevented from writing.
In other words, it will be a read-only site. Consequently, this
patch solves bug 55146. Note that although obsolete
sites now become readable, they will not be in site.languages().

In addition, this patch makes pagelanglinks() return only non-obsolete
sites by default to make old scripts still functional, but it adds a
parameter to suppress this functionality.

Tests adapted by Merlijn van Deen <valhallasw@gmail.com>

Bug: 61120
Bug: 55146

Change-Id: I42a2f45bb0d63e268c88a6b0c67a096d2433f21a
Original-Change-Id: Ia12660ae2c16148ee7e13977155f1940fe560df1
Original-Change-Id: I3d6ef66c369da7f0b64b821d7d78454192601839
Merge "Make obsolete site object can be created"