Abstracted file preferences

Now multiple implementers can define their own file type specific
preferences (not just the editor).

Could be used to eg. implement icons in the file view.