remove nil values from comparison to avoid failing on empty tables
cache questions-with-bad-reviews status in app

This speeds up consecutive question#complete? checks when there have
been admin changes. #complete? is cached after the first hit, but pages
like categories#index_details still suffer if there have been changes
and all questions need to be re-checked because eager-loading is
uneasible. This additional cache speeds up many complete?-calls while
slowing down the ones that have to resolve it (0.2ms → 2ms for has
bad reviews query).