Adds preferences that map extensions and filenames to languages.

This adds `language.fileExtensions` and `language.fileNames` preferences
that can set the language associated with the provided extensions or
filenames. These prefs are both objects.

This is a fix for #6831