Fix PropelObjectCollection to use the right approach during search()/contains()

Currently; we try to determine if an object is part of a collection by
using a strict comparison, objects have to have the same reference to be
considered identical. It could make sense but in real life, you can get
the same reference for two objects. By using a hash code, we better handle
this special case, only for ActiveRecord objects.

Fixes #383