Log errors instead of failing when cache is unwritable

The HTTP response will still be returned, but will not be
cached.

This is to prevent the Downloads page falling over if the
cache directory cannot be written to.
Allow unauthenticated calls to github if site-config.php is missing

This is so that the site will continue to work if site-config.php
is temporarily unavailable or missing.