TASK-TA7 DAO API: Entities & interfaces

I've created a separated PR for the DAO API to unblock other tasks ASAP and to receive your feedback on design prior to development.

I had to create a new PR due to changes in the branch names according to task name. Previous PR #2 was closed
Maybe would be better to change name to #find(String)