added source location classes

Added SourceId, SourceLocation, and SourceRange classes that represent a source
file, a position within a source file, and a range within a source file
respectively. These should be fairly efficient and leightweight.
reworked src repo intf

Added proper documentation for the interface of a source repository. The file
SourceRepositoryInterface.hpp will be renamed to SourceRepository.hpp soon. A
concrete subclass of said interface shall be created that implements the repo
functionality using the file system. An additional subclass might be devised
that performs this task using a sqlite3 database.