lml/ost#347: Convert native confirm to dialog based confirm.

TODO:

* [x] Cache the settings at the session level.
* [x] Debug and fix the "Continue" button action.
* [ ] Make `maybe_confirm` JS seamless.
* [ ] Fix styles for checkbox and dialog.
* [ ] Add a simple page to view and change the settings.
* [ ] Refactor and extract it into a gem / plugin.

The issue is that you are storing the settings in both the session and in the database. Unless you (and everybody else who works with user settings in the future) are very careful, you can easily forget to update one or the other. That's why it's recommended to just keep the ID of whatever object in the session. In this case, since each user has exactly one user settings object, you don't even need to store anything extra in the session, since the user id is already there.

You can still memoize the settings as an instance variable in the controller, so you remember them during a single request. There will an extra query for every request that needs the settings, but that should be fine for now.