Add localization, slim down tests, isolate requests

This change adds the following:

1. Localization support for all user-facing messages
2. Reduces repetition in tests
3. Isolates out / removes duplicate logic for API requests

Additionally I took some time to go through and try to reduce the number
of Rubocop violations.