Make question structure lookup once per survey

Not for every response - performance
Pull collectors out of loop
Remove a couple of unhelpful null checks

Not necessary now that missing data can only be filled in its entirety