added missing include

sha1.hpp was missing an include for the <functional> header.
added src iteration to file-based src repo

Added accessors to individual sources and an iteration function that calls
a function for each source file in the repository to FileSourceRepository.
This should finalize the SourceRepository interface for now, since files
can be added, removed, and inspected accordingly.