Refactors UserEmailObserver to improve Code Climate score

- Extracts certain logic to private methods and remove unnecessary
comments
- Extracts email enqueueing methods into a separate class
- Fix specs involving UserEmailObserver to call #after_commit instead
of the specific methods