Allow changing of language preference from profile page

This adds profile API functions for handling the fetching and updating of user preferences, a language selection form to the profile page, new JS to process the form's submission, and modifies the profile views to handle this new functionality. Also includes a handful of small tweaks to make things more consistent.

@wedaly and @dianakhuang, could you review this?
We currently do some validation like this, but a little later on. Say the new language code is `foo`. This invalid code will be saved as the user's language preference. When the page is reloaded, a check occurs in `common/djangoapps/lang_pref/api.py` to see if the user has indicated a preference for a valid language. If they haven't, we revert to using the current language and the invalid language preference is not displayed in the dropdown.

Are you comfortable with this? If not, I can add something to the new language API and use it to do the validation earlier.