Added streaming support to BaseQuery.request()

Always without caching, as this is intended to download files.
Do not download files that are already on disk.