batmanjs/batman — pull request #1014 by rmosolgo (2014-03-26 02:01:36+00:00)
Title: Use Batman.TrackingHash for Model attributes

I think this addresses #917 and #918 but judging by the `Slow` warnings in my tests, I wonder if its a performance regression.

- `Batman.TrackingHash` knows its clean values
- `Model::%attributes` is a TrackingHash
- If you set a record attribute to its original value, the record is clean again, a la Rails:

```ruby
# Rails:
person.first_name # => "Pico"
person.first_name = "Picaux" # > "Picaux"
person.first_name_changed? # => true
person.first_name = "Pico" # => "Pico"
person.first_name_changed? # => false
```

```coffeescript
# batman.js:
person.get('firstName') # => "Pico"
person.set('firstName', 'Picaux')
person.get('isDirty') # => true
person.set('firstName', 'Pico')
person.get('isDirty') # => false
```