VID-2142 Refactoring of the VideosModule

* Split different video sources into subclasses
* Added cache purging code
* Incorporated James' AsyncCache changes