Add RepositoryWorkingDir trait

Abstracts the working dir. Will have default implementation with
DirectoryRepositoryWorkingDir.