Made shader download behaviour more modular and configurable, and added a check for redownloading all shaders when upgrading to 5.7.0