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
I added the `SORT` constant to this class which is used in the Base constructor to set the `$sort` member.