Add conditional versions of has_many functions

e.g.

  Student:exams([score > 70])
  Student:first_exam([score > 70])
  Student:last_exam([score > 70])