Fix duplicate database events from firing 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).

* Also fixed issue in README about how to require `database_events` functionality

* Refactored ActiveRecordFake used in tests