Issue #25: Add DataNode object type and appropriate set_data() methods.

This also adds unit and integration tests!