Global manager for physical materials. Materials are created, updated and destroyed only on the game thread and an immutable copy of the materials are stored on each solver. The solvers module binds to the updated event in this manager and enqueues updates to all active solvers when a material is updated.