reduces sql queries & detect calls for feedback/presentation conditions from SE

Note that this PR does not initialize the cached conditions for all SEs, though they should be updated individually as the SEs are saved by students.

We can from the console or other do something like 

`StudentExercise.find_each{|se| se.update_cached_conditions}`

to initialize the cached conditions.  

When reviewing the PR, make sure that we're still getting the feedback and presentation conditions we were previously and that on save the SEs will update their cached references.