Implement support for abstract models - include basic hierarchy tests. Closes #44.
Merge pull request #180 from spectras/feature/abstract

Implement support for abstract models