Revert "User::saveOptions() optimization"

The hooks are not actually being called multiple times,
since getDefaultOptions caches its return value
(except while unit testing).

However, this change caused a regression due to different
handling of saved values (e.g. false no longer saves
when the default is true).

This reverts commit ff355e87e2f7a41a87c37f43232a44113cb033e0.

Bug: 60653
Change-Id: Ibbd34dde5ec5fafbdf6097337cc0fa94614f0b85
Merge "Revert "User::saveOptions() optimization"" into wmf/1.23wmf12