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 had planned to use it to specify a default language, but since we're moving the business logic for that to `language_api`, I don't think we still need it.  We can add it back in down the road if it ends up being useful.