Go through normal `where` logic when preloading associations

This will allow eager type casting to take place as needed. There
doesn't seem to be any particular reason that the `in` statement was
forced for single values, and the commit message where it was introduced
gives no context.

See
https://github.com/rails/rails/commit/d90b4e2615e8048fdeffc6dffe3246704adee01f