Config class

Creating the pull request so that I can comment some lines ;)
As I say, git can only detect renames up to a certain point - beyond that point it just treats it as a new file.