tests: Add a small git repository and a first end-to-end test

The tests will be stored in bash files following the convention:
1) The file name will be in the form "tests-*.sh"
2) The tests will be declared as functions with names "test_*()"

The first test covers the test case where the branch is specified, but no
other "main branch reference" is. In that case, we assume that the user
wants to walk through all the entire branch, starting from the first commit
in the repository.

When adding this test, I've realised that the way I have implemented the
script is not the more intuitive one. What it currently does is assume that
the user wants to walk through the branch until the first commit that is
*not* contained in master. That is completely the opposite of what I
should've done. This needs to be fixed.
Makefile: Add `check-tests` and `check`

`make check-tests` will run the end-to-end tests and `make check` will
run all kinds of tests that can be run, which currently are "pylint" and
"end-to-end tests".
tests/run-tests.sh: Add verbosity for test runs

It's good to know what test has failed.
tests: Collect stdout and stderr from tests into different folders

A folder "test-results" will be created and every sub-folder will
correspond to a test (by name).
git_history_walker.py: Make `test_branch_without_base_branch` pass

Change the implementation in `git_history_walker.py` so that the unit
test test_branch_without_base_branch passes correctly.
run-tests.sh: verbosity stuff
run-tests.sh: clean dirs stuff