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
Is this sort actually being used? From what I can tell I think it's just falling to the default empty string in the base class. We can probably remove this and the other reference to it on line 69.