Issue #158, #153, #150, #140 - Refactoring, exercise whitelist/blacklist should be loaded from videos.json, basic exercise support functionality, unit tests