Use the correct pk field from the reflected class to find the old record

The implementation was using the source class foreign key field instead
of the reflected primary key one to find the old record.

For instance, for this scenario

    class Bulb < ActiveRecord::Base
      belongs_to :car, :touch => true
    end

    class Car < ActiveRecord::Base
      has_many :bulbs
    end

the current implementation was trying to do this query:

    Car.where(car_id: X).first

where we should be doing this query:

    Car.where(id: X).first

This should hopefully fix the build.
Avoid an attempt to fetch old record when id was not present in touch callback