Basically. I would like to, over the long-term move away from having to specify a getter and setter for each attribute we want to access on an object with the API. The user class is full of stuff and we have to add two methods each time we want to return a new field. This way I'm abstracting the values up to HashableObject and then using attr_readers on the class itself to define what we return to the client.

Right now getting a user returns this: http://cl.ly/image/1m1B2q3J243F
Right now getting a tag returns this: http://cl.ly/image/3O2t2u3A1A2o

This change makes tags return `#<Intercom::Tag:0x007fe50510a378 @id="515c24d25712a15e88014a38", @name="FromAPI", @color="red", @segment=false, @tagged_user_count=nil>` 

With instance variables for all the properties that we want to return. I'd like to see the user response look like this as well. 

Maybe I'm missing something though? Perhaps there was a reason the User response returns a bunch of `@attribute` scoped values?