core: let the ignores functionality detect the version control system

Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
core: add some comments in VersionControlSystem

To make clear what code has to be modified to add
support for more version control systems.

Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
core: move some code around in VersionControlSystem

To keep the code together that has to be modified to add
support for more version control systems.

Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>