Merge pull request #18 from materialsvirtuallab/master

More robust serialization and use of abstract base class.