Move preference_resuce.rb into Core, where it should've been

Fixes #3860