Commit 8212b8b9

add the first part of the WiP model concept, currently broken

This introduces the ModelManager, a class that can load arbitrary models as well as caching data about already loaded models, so requesting the same model twice will not result in the same model being loaded more than once.
In this state the code was already added, but broke the build, also even if it worked, it would have been unused by the renderer, which was still using hardcoded model references.

Commit 1fe9819e

implement the first iteration of the logger

This introduces the logger, the main features are different logging levels (Normal, Error and Debug) as well as automatic logging into stdout/stderr respectively as well as into a main logging file (olives.log) for the Normal/Debug messages and an error file (olives.err.log) for the Error type log entries. Using it looks something like this:

std::string message = “Renderer: Could not create logical device”;
logger->logError(message);
throw std::runtime_error(message);