Handle Timeout from request

The requests library can fail the request with a Timeout exception.
If the user of basket-client wants to catch BasketException when
there's an error on its request, it probably expects timeouts to be
included, and not to have to explicitly catch the request library's
Timeout exception. So catch that in basket-client and raise the
expected BasketException.