reduces number of db queries in cart validations

Queries don't work the way I thought they work, unfortunately.

This PR reduces the query count of cart#validate_items to O(1) and reduces the query count of cart#validate_dates_and_items by about half (though this is still O(n) queries, mostly due to a faulty num_available method).
I think it's because the previous version just specified the Relation but didn't actually load anything. On the upside, that enabled scope-chaining; on the downside, (probably) multiple loads. Am I understanding it right, @squidgetx?