Added BackgroundFitMode preference

So people will stop complaining about it.
Part of this pull request changes a bunch of the BackgroundEffects files, so that scale_or_crop_background is (almost) always used, and that function does the actual work of checking the preference and scaling the bg.
The "StretchBackgrounds" preference should be considered deprecated and any usage of it in default, _fallback, or the engine should be removed.  The preference still exists because removing it entirely would break theme compatibility.
ScreenSetBGFit is a new screen for setting the BackgroundFitMode preference with visual aids to show the effects of the choices.  Hopefully it won't be difficult for themers to deal with.