Replace flatObjectsAreEqual with objectsAreEqual

Replace the utility method `flatObjectsAreEqual` with `objectsAreEqual` so objects with nested properties can be evaluated for equality.

--

Preparation work for allowing `tokenAttributeName` and `identificationAttributeName` to be nested attributes, stemming from https://github.com/simplabs/ember-simple-auth/pull/319. The logic for `objectsAreEqual` more or less came from http://stackoverflow.com/a/6713782, seems like a solid solution to me. I figured it made sense to do the actual implementation of supporting nested attributes attributes for `tokenAttributeName` and `identificationAttributeName` in another PR, but let me know.