Use the current user's locale to display the app.

The order of precedence to decide the locale for the views is :

- if there is a locale URL parameter, it is used
- otherwise if a user is authenticated, use his locale
- otherwise use the first available locale in the http accept-language header
- if the accept-language contains only unavailable locales, default to english.
Locale parameter is not automatically added to the href of all links anymore.

The locale param is manually added to those links where it's necessary (mostly devise views).

The idea is that while the user is not authenticated, the locale param is added to links, so that if the user changes the locale from the dropdown the change will be preserved if he changes to another devise un-authenticated view (change password, send unlock email etc). However as soon as he's authenticated and passes to the read view, the locale used is the one set for the user, and the param is not necessary in links (in fact it could be harmful).
Locale set for the current user now takes precedence over other considerations when deciding which locale to use.
Allow users to change their language from the Edit Registration view.
Better organization of the Edit Registration form.
The edit registration view uses the "application" layout, instead of the "devise" one.

The edit registration view looked weird with both the navbar and the big image header used in other devise views. The devise layout is appropiate for views that are accessed by unauthenticated users; the edit registration view, which is accessed by authenticated users, is more suited to the application layout.

Inspired by this article of the devise wiki:

  https://github.com/plataformatec/devise/wiki/How-To%3a-Create-custom-layouts
Show the locale change dropdown in devise views and static pages only if the user is not authenticated.

For authenticated users the correct way to change the locale is through the Edit Registration form.
Restored page header to the edit registration view.
Added acceptance test for a user changing his language.