Factor `showNotificationBar` out into ValidatingView.

When all settings require an explicit save, this functionality will be
shared between each view (with slight changes, e.g. click handlers.)
Change course settings to require explicit save.

Rather than asynchronously saving when a setting is updated, we now
prompt the user to confirm their changes and only persist the data if
they hit the save button. Lettuce tests are updated to expect this
behavior and some new ones are added.
Refactor and update acceptance tests around saving settings.
Make sure that changing grading cutoffs triggers a save confirmation, and reliable reverting of changes.
Remove outdated deleteKeys from advanced settings.
Update acceptance tests for course settings.
Fix validation in many cases, and ensure that the notification bar pops up correctly.
Show notification bar as soon as user starts typing, rather than on the field losing focus.
Fix validation errors not showing after clearing errors once.
Prevent the user from saving when model is invalid.
Slide alerts up and down instead of immediately hiding/showing them.