Abstracting graphics and data source

Now we may have different implementations of data source (dos/amiga/custom) and graphics engines (SDL/native).
`stdlib.h` is a system header so should be included by `<stdlib.h>` but since this is a C++ file use `<cstdlib>`. `snprintf` is defined in `cstdio` and `strdup` is defined in `cstring`. Also, what happened to locals-to-globals ordering of includes?

```
-#include "stdlib.h"
+
+#include <cstdlib>
+#include <cstdio>
+#include <cstring>
```