Properly handle exception from requests

 - response is generally not set in this except case
 - raising str-s is not supported
 - the trick with exc_info is needed because logging does io, and in
   contexts where we run under gevent or something similar, the
   global exception info may be lost by the time we re-raise