core/fetch: Create a separate context for the actual fetching goroutine.
core/fetch: Create a separate context for the actual fetching goroutine.

Previously, canceling the context for the fetching goroutine would also
match the case of waiting waiting for the parent context to be canceled
- if that select case was chosen, we would permanently shutdown the
fetcher.

jrupac/goliath,jrupac/goliath,jrupac/goliath,jrupac/goliath,jrupac/goliath