Add DataType model and ability to manage data types

Implements and closes #119.