frontend: unify the UI and API error handling
This way we can handle most of the exceptions on one place.
This also removes significant amount of traceback log entries from
frontend.log/error_log because we fix the issue from 314cab8a69a where
we started logging tracebacks for every HTTP (non-200) error.
Thus, this fixes #1600. The traceback noticed there was just caused
by connection failure between client and server (error 400). The
situation can be reproduced by 'kill -9'ing the client while SRC.RPM is
being uploaded.
Fixes: #1600