VID-2142 Create a way to clear the VideosModule Video Cache

* Refactored the VideosModule into different subclasses for each video sources
* Added cache purging code
* Incorporated James' AsyncCache changes
Pretty sure it still shows error with missing abstract method implementation; only at the class level rather than file level. `interface` will work here, but could be misleading implying that other components depend on it. Also, IDEs should not affect design or implementation of the code anyways.