text: Title: Improve reading notebooks from url that need accept json header
  Body: Our notebooks are being stored in an [nbgallery](https://github.com/nbgallery/nbgallery) instance.  A generic `requests.get(notebook_url)` returns html.  Papermill's `execute.execute_notebook(notebook_url)` / `iowr.HttpHandler.read` do not offer a way to set a `{'Accept' : 'application/json'}` header in the request.
  
  When we make a request on our own using accept json headers, we can write that notebook to file (`tempfile` or otherwise) and use Papermill as is.  It would be convenient to also be able to pass in a file-like object (`io.StringIO(resp.text)`), json (`resp.text`), and/or dictionary (`resp.json()`) of the downloaded notebook file rather than needing to write to file.
  
  Thanks.