Remove leftover metadata from the ball demo level

Prevents loading of background resources nobody will see.
Initialize the full SOL structure

Fixes invalid pointer access when freeing a SOL that failed to load.
Factor out material file loader
Implement a material cache
Add material reloading (F7 in cheat mode)
Further flesh out shared render state identity