Properly validate site ids in SpecialSetSiteLink

Using SiteLinkTargetProvider which the api also uses.

To prevent things like:
https://www.wikidata.org/w/index.php?diff=181731621

Change-Id: Iec23f779382dc8b719d8c82d89377f4663801255
Re-add null check in SpecialSetSiteLink

Otherwise, i get:

The site id "" is unknown. Please use an existing site id, such as "enwiki".

whenever i visit url like Special:SetSiteLink/Q139.  The null check
should probably also go first, since the valid check is more 'expensive'.

Change-Id: Ic78b81ae90fca7b0acebe0b658fcfb87586b0c09