Extracted language preference middleware to its own repo

Done. Pretty much all of the removed code was moved to the new repo verbatim. Changes were made to allow the inheriting class to determine how to retrieve user preferences (e.g. UserPreferences for platform, custom user model for analytics).