Only query predictions if necessary.

Currently, they will always be calculated, but we're going to put them inside a partial cache.

Attempted to create a more efficient predictor query, but the ActiveRecord grouping and summing was confused by ambiguous group by column names.

Closes #502.