Improve Compute-custer error handling

Original issue was that the server was responding with a 200 even though compute-cluster was throwing an error (string).

The cause that the worker server was replying with the string from compute-cluster, and the `error.translate()` we do wasn't catching that it was an error. This now makes sure to wrap the string in an `AppError`.

Additionally, knowing time of different parts of the upload process would be great.