MaterialSnapshot: Capture the state of MaterialVariant decoration animations

Include in the snapshot a copy of the current state of the material
variant's light decoration animations and preparing any textures
which will be needed come render time.

Todo: Interpolate staged state values.
Light Decorations: Project using MaterialSnapshot's cached decoration state

Todo: Both decorsource_t and Surface::DecorSource are no longer
needed and the two should be merged.