Bugfix: duplicate database events fire for models without name method

DatabaseEvents::Event#name_has_changed? was incorrectly returning true
if the model object didn't respond to `#name`. This was a purely logical
error: the name must be considered *not* to have changed if the model's
`#name` method isn't implemented otherwise every sync will result in the
event being recreated (and therefore re-run).
Bugfix: README incorrectly states how to require database_events
Refactor ActiveRecordFake to use composition rather than inheritance

 * the previous implementation meant that each subclass had to have
   various things defined in the subclass (e.g. instance variables)
   that are needed to provide features implemented in the parent. This
   new implementation removes the need for this.
Merge pull request #129 from robisenberg/fix_duplicate_database_events_from_firing_for_models_without_name_method

Fix duplicate database events from firing for models without #name method