Extract attributes generation for trackable

This enabled me to override the update_tracked_fields! method to background the updating of these
attributes. Using something like:

```ruby
# app/models/user.rb
def update_tracked_fields!(request)
  Resque.enqueue(Jobs::TrackUserSignIn, id, tracked_attributes(request))
end
```

```ruby
# app/models/jobs/track_user_sign_in.rb
module Jobs
  class TrackUserSignIn
    @queue = :low

    def self.perform(user_id, attributes)
      user = User.find(user_id)
      user.update_attributes! attributes
    end
  end
end
```