This changes the fallback logic to always prefer the previous resolved lifetime entry rather than fallback to the first entry ever. I think this is more correct in all cases. Also rewrites the inline comments to hopefully be easier to parse.
DrawableRuleset
FallbackShaderManager
OnAdd
OnRemove
HitObjectContainer
IHasTooltip
IApplicableToDrawableHitObject