Untrapped exceptions in oqtask give ugly error messages

See https://bugs.launchpad.net/oq-engine/+bug/1292604. The fix is to wrap everything under safely_call so that unexpected exceptions (for instance pointing to the wrong database) appear on the controller node too, not only on the celery log.

Tests running on https://ci.openquake.org/job/zdevel_oq-engine/327

This pull requests also wraps errors in the engine server: for instance, if the platform sends to it an invalid file, the traceback is saved in icebox and is available to the user.