replace AttrDict with DataObject

Reviewer: @Sovietaced
CC @3mp4y5

DataObject uses the built-in __dict__ and attribute access rather than
wrapping a separate dict.