Fix ortho projection in OpenHMD backend

This is a direct crossport from a fix in the LibOVR backend. Both needed
the same change but I overlooked it.
Factor out material file loader
Implement a material cache
Add material reloading (F7 in cheat mode)
Further flesh out shared render state identity
Implement configurable lights

The default parameters are still hardcoded. The config file is read on
F7 in cheat mode. It's meant for tweaking values, not permanent
configuration.
Add ambient lighting from scene lights
Adjust materials for new lighting
Render different-valued coins as separate SOL models

This is heavy stuff, but gives us full control over coin
materials. This commit also makes use of that and fixes coin materials
for new lighting.
Rework grow/shrink items
Make item OBJs have unit size and scale them by radius at draw time
Infer particle burst colors from item materials