Added spot lights. Refactored out ResourceLoader in order to put its methods into relevant classes. Updated and improved documentation. Optimized shaders.