Abstract storage out to separate class.
Unify version management and change storage to incorporate release/pre-release data
Fix release vs pre-release; condition was inverted
Merge branch 'feature/smart-cache' into develop