Dividing `repository->find` method in smaller pieces

This way, concrete implementations can reimplement its parts to get more
control over the data that is used to build the resource.
Oops, forgot to return the data
Merge pull request #8 from dripolles/master

Dividing `repository->find` method in smaller pieces