Raise custom exceptions and pass http code and body

Allows better rescuing of Browserstack exceptions such as:

    begin
      response = client.generate_screenshots(params)
    rescue Screenshot::InvalidRequestError => e
      puts e.code
      puts e.body
    end