title: afterFind() seems to be running one extra time, with incorrect $primary value
body: <p>I have a model called ShippingBatch which hasMany Order. Order is a key model which in-turn has relationships with many other models</p>
  
  <p>I am trying to make a $this->recursive = 2 read() call on a ShippingBatch, such that I get the Orders and also Order's relationships. I am also running an afterFind() to populate some calculated values.This causes a bit of a loop, as the Order part of the result also have ShippingBatch information.</p>
  
  <p>Its not too much of a problem as the $primary==false check in the afterFind cuts off the problems.</p>
  
  <p>But, in one case, the afterFind is running one extra time than it should, with a seemingly incorrect value of $primary (= true). </p>
  
  <p>Can anyone point me to something that might be wrong?</p>