This patch does several things to LinkCache to make its behavior more
consistent and predictable:
* Methods that set a "good" link now clear the "bad link" flag, and vice
versa.
* invalidateTitle() now also clears the local cache, not just the
persistent cache.
* Attempts to set data for LinkTargets that are not proper local pages
are ignored.
* All methods now accept LinkTarget|PageRecord as the key.
The ones that previously accepted a string still allow that as well.
* addLinkObject() now consistently uses the local cache if possible,
and consistently bypasses it if the forUpdate() flag is set.
This is all done in preparation for LinkCache being used inside PageStore.
Bug: T278940
Change-Id: I62107789fa185606a81be20ffa8f0be48297c08f