add functions to fetch a BLOB

- `fetch_init/2`: initialize a fetcher to fetch a BLOB in a streaming
  fashion
- `fetch/1`: fetch a BLOB chunk with a Fetcher
- `fetch_all/2` : fetch a full BLOB in memory