Shadow mapping preparation.
Very dirty commit
Another dirty commit

Shadow mapping still doesn't work. However, Utility classes have three
interfaces: ILogger, IConfig and ICommand which hide specific
implementations from the DLL clients.
Shadow mapping works at last!