When a theme setting of type `upload` has a default upload, it should return the URL of the specified default upload until a custom upload is used for the setting. However, currently this isn't the case and we get null instead of the default upload URL.
The reason for this is because the `super` method of `#value` already returns the default upload URL (if there's one), so we can't pass that to `cdn_url` which expects an upload ID:
https://github.com/discourse/discourse/blob/c961dcc757911901b213b26c97a9972d7291c8c6/lib/theme_settings_manager.rb#L212
This commit fixes the bug by skipping the call to `cdn_url` when we fallback to the default upload for the setting value.
Similar to site settings, adds support for `refresh` option to theme settings.
```yaml
super_feature_enabled:
type: bool
default: false
refresh: true
```