Swift Asynchronous Images Download and Caching with GCD and NSCache without Relying on Third Party Libraries