Database abstraction layer and ORM based on Propel