separation of the repository and project storage

* this commit places storage of project data into an own class. The
  storage can be configured when the repository is created.
* Implementation of a file storage is started.