Use the after-commit-on-update gem to call after_commit on update in observers
Quick fix to enable searching for locales with country codes
Fixes translation_workbench refocusing on itself bug
Add an edit-button to translation page, visible only to translators.
Display edit translation page to translators when they click on an issue_url
Replace cancel button on issues. Re-structure/simplify the UI

Fixes https://jira.corp.squareup.com/browse/SHUTTLE-338
Update has_metadata_column
Move the task of migrating import_errors to ImportFinisher

Conflicts:
	app/models/observers/commit_observer.rb
	lib/import_finisher.rb
Record import_errors more generically than before.
Doesn't reschedule BlobImporter if blob was not found

Conflicts:
	app/workers/blob_importer.rb
Abstracts creating and raising Git::NotFoundErrors
Catch Git::NotFoundErrors in workers and send email if CommitCreator, CommitImporter, BlobImporter or KeyCreator fails due to a sha not found in git repo.

If the error occurs in AutoImporter, it doesn't send an email. Once we have DRIs for each project, we can notify that person.

- Fixes https://jira.corp.squareup.com/browse/SHUTTLE-365
- Fixes https://jira.corp.squareup.com/browse/SHUTTLE-266

Conflicts:
	app/workers/auto_importer.rb
	app/workers/blob_importer.rb
	app/workers/key_creator.rb
Re-structure some code to make it more readable. Add some documentation and tests.
Include more informational and actionable error messages in the web UI and emails, for import errors.
PR fixes
Fixes 'cap staging sidekiq:restart' command

Conflicts:
	config/deploy/staging.rb
Fixes https://jira.corp.squareup.com/browse/SHUTTLE-371
Catch Git::CommitNotFoundError in BlobImporter, and send an email
Drop not-null contraints from repository_url
Implement git-independence.

Projects don't need to have a repository_url any more, and the rest of the code should respect that.