This change turns LightingValue back into a struct.  It also removes the other null checks that were needed because some intent states return 'default(valType)' when asked for stuff they don't have (like a time point they don't have).  This change does nothing for the underlying problem that there doesn't seem to be universal agreement on the nature of and effect/intent's timespan being open/closed on one end or another.

On the bright side, we know that turning lightingValue into a class can be used to expose these cases.