cache_key is an instance method that relies on updated_at. When changes
were made, the time-dependent key was being used instead of X.application_setting.last.
Closes#3609
If a DB migration occurs, there's a chance that the application settings are
loaded from the cache and provide stale values, causing Error 500s.
This ensures that at startup the settings are always refreshed.
Closes#3643
ApplicationSetting.current was called in every pages, cache it and expires it after it updated.
This changes will avoid a SQL query in every pages (~0.3 - 0.5ms).
```SQL
SELECT "application_settings".* FROM "application_settings" ORDER BY "application_settings"."id" DESC LIMIT 1
```