Moves Gfycat to use API via site access key.
Adds cachetools as dependency to reuse API keys for Gfycat/Redgifs at 95% of their TTL. Include tests to verify caching.
Updates versions of requests/yt-dlp/black/isort/pytest.
Added default timeout to requests calls.
Adds validate-pyproject and blacken-docs to pre-commit as well as updates versions.
Coverage for direct gfycat links that redirect to redgifs. The redirect through the sites themselves are broken but this fixes that.
Coverage for o.imgur links and incorrect capitalisation of domains in download_factory.
Changed tests for direct as gfycat is handled by the gfycat downloader.
fix pornhub test as the previous video was removed.
Standardizes shebang and coding declarations.
Coding matches what's used by install tools such as pip(x).
Removes a few init files that were not needed.